Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA SaveAs Fehler - Warum?!

VBA SaveAs Fehler - Warum?!
04.12.2018 14:27:27
Bernd
Servus zusammen,
ich habe ein Problem mit der "SaveAs"-Methode und komme einfach nicht auf die Ursache des Fehlers.
Mein Code zum Speichern sieht folgendermaßen aus:

' Kopie unter neuem Dateinamen speichern
strPfad = ThisWorkbook.Path
If Right(strPfad, 1)  "\" Then strPfad = strPfad & "\"
With Sheets("WR2_Deckblatt")
newLSV = Left(.Cells(23, 2), Application.WorksheetFunction.Find _
(Chr10), .Cells(23, 2), 1) - 1)
newLSV = Replace(newLSV, " ", "_")
newDateiname = "GAP-Analyse_" & newLSV & "_" & Format(Date, "YYYYMMDD") & ".xlsm"
newFile = strPfad & newDateiname
End With
ThisWorkbook.SaveAs Filename:=newFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled,  _
ReadOnlyRecommended:=True
' Kopie unter neuem Dateinamen speichern ENDE

Er läuft fehlerfrei durch, erzeugt mir auch die neue Datei, aber wenn ich diese öffnen möchte bekomme ich eine Meldung von Excel:
"Wir haben ein Problem bei einigen Inhalten in 'Dateiname' erkannt.
Sollen wir so viel wie möglich wiederherstellen? Wenn Sie die Quelle dieser
Arbeitsmappe vertrauen, klicken sie auf 'Ja'."

Ich kann nur Ja oder Nein auswählen. Bei Ja wird repariert, aber das zerschießt mir die komplette Formatierung, Formeln und Makros in der Datei.
Bei Nein wird die Datei nicht geöffnet.
Habe ich im Code einen Fehler, oder woran kann das liegen?
Ja, ich bin mir bewusst, dass man eineige Variablen garnicht benötigt, aber ich habe zur Fehlerfindung versucht jede Wertermittlung als separate Variable aufzudröseln um so dem Fehler auf die Schliche zu kommen. Bisher erfolglos... :-(
Danke und Grüße, Bernd
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SaveAs Fehler - Warum?!
04.12.2018 15:02:07
Rob
Hi Bernd,
hast Du es mit einem anderen FileFormat versucht?
51 = xlOpenXMLWorkbook (without macro's in 2007-2016, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2016, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2016 with or without macro's, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2016, xls)
Anzeige
AW: VBA SaveAs Fehler - Warum?!
04.12.2018 15:03:17
Rob
bzw ich sehe gerade, Du hast ja schon das passende Format:
xlOpenXMLWorkbookMacroEnabled
AW: VBA SaveAs Fehler - Warum?!
06.12.2018 07:41:03
Bernd
Servus zusammen,
ich konnte das Problem leider noch nicht lösen. Hat vielleicht noch jemand einen Vorschlag?
Danke und Grüße, Bernd
offen
06.12.2018 08:42:54
Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA SaveAs Fehler beheben


Schritt-für-Schritt-Anleitung

Um das Problem mit der SaveAs-Methode in VBA zu beheben, folge diesen Schritten:

  1. Überprüfe den Pfad: Stelle sicher, dass der Pfad, den du verwendest, korrekt ist. Ein Beispiel für die Zuweisung des Pfades:

    strPfad = ThisWorkbook.Path
    If Right(strPfad, 1) <> "\" Then strPfad = strPfad & "\"
  2. Erstelle den Dateinamen: Achte darauf, dass der Dateiname gültig ist und keine ungültigen Zeichen enthält. Hier ist ein Beispiel:

    newDateiname = "GAP-Analyse_" & newLSV & "_" & Format(Date, "YYYYMMDD") & ".xlsm"
  3. Verwende die SaveAs-Methode korrekt: Stelle sicher, dass du die SaveAs-Methode mit dem richtigen Dateiformat verwendest. Ein Beispiel für die Verwendung:

    ThisWorkbook.SaveAs Filename:=newFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled, ReadOnlyRecommended:=True
  4. Testen: Speichere und teste die Datei, um sicherzustellen, dass sie ohne Fehler geöffnet werden kann.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die bei der Verwendung der SaveAs-Methode auftreten können, sowie deren Lösungen:

  • Fehlermeldung "Wir haben ein Problem bei einigen Inhalten erkannt": Dieser Fehler kann auftreten, wenn das Excel-Dokument nicht korrekt gespeichert wurde. Überprüfe die Datei auf ungültige Inhalte oder Formate.

  • Falsches FileFormat: Wenn du das falsche FileFormat verwendest, kann dies ebenfalls zu Problemen führen. Für eine .xlsm-Datei solltest du xlOpenXMLWorkbookMacroEnabled verwenden. Das ist der passende FileFormat für Makros.

  • Ungültige Zeichen im Dateinamen: Stelle sicher, dass der Dateiname keine ungültigen Zeichen (wie /, \, :, *, ?, ", <, >, |) enthält.


Alternative Methoden

Falls du weiterhin Probleme mit ThisWorkbook.SaveAs hast, kannst du folgende alternative Methoden in Betracht ziehen:

  • ActiveWorkbook.SaveAs: Diese Methode funktioniert ähnlich, jedoch wird die aktive Arbeitsmappe gespeichert. Beispiel:

    ActiveWorkbook.SaveAs Filename:=newFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled
  • Verwendung von SaveCopyAs: Mit dieser Methode kannst du eine Kopie der Arbeitsmappe speichern, ohne die aktuelle Arbeitsmappe zu schließen oder zu ersetzen:

    ThisWorkbook.SaveCopyAs Filename:=newFile

Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung der SaveAs-Methode in VBA:

  • Speichern einer Arbeitsmappe als .xlsm:

    ThisWorkbook.SaveAs Filename:="C:\Users\DeinBenutzername\Documents\NeueDatei.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
  • Speichern mit einer Variable für den Pfad:

    Dim strPfad As String
    strPfad = "C:\Users\DeinBenutzername\Documents\"
    ThisWorkbook.SaveAs Filename:=strPfad & "NeuerDateiname.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

Tipps für Profis

  • Verwende On Error Resume Next: Füge diese Zeile vor deinem SaveAs-Befehl hinzu, um Fehler zu ignorieren und die Ausführung fortzusetzen. Dies kann hilfreich sein, um zu sehen, ob ein anderer Fehler auftritt.

  • Teste in einer neuen Arbeitsmappe: Manchmal kann es hilfreich sein, den Code in einer neuen, leeren Arbeitsmappe zu testen, um sicherzustellen, dass keine alten Makros oder Formate stören.

  • Nutze Debugging: Verwende Debug.Print oder setze Haltepunkte, um den Wert von Variablen zu überwachen, bevor du die Datei speicherst.


FAQ: Häufige Fragen

1. Was bedeutet der Fehler "Wir haben ein Problem bei einigen Inhalten erkannt"?
Dieser Fehler tritt auf, wenn Excel beim Öffnen der Datei auf beschädigte Inhalte stößt. Überprüfe deinen Code auf mögliche Fehler und ungültige Inhalte.

2. Welches FileFormat sollte ich für eine .xlsm-Datei verwenden?
Für .xlsm-Dateien solltest du xlOpenXMLWorkbookMacroEnabled verwenden, um sicherzustellen, dass Makros korrekt gespeichert werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige