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

ActiveWorkbook.SaveAs (FileFormat)

Forumthread: ActiveWorkbook.SaveAs (FileFormat)

ActiveWorkbook.SaveAs (FileFormat)
25.08.2004 11:02:54
Michael
Hallo zusammen :-)
Also ich habe ein Problem mit dem FileFormat.
Ich Editiere gerade ein altes Excel VBA dings.
Das Scripts speichert Excel folgendermaßen folgendermaßen:
ActiveWorkbook.SaveAs "C:\Temp\SAuf_Dat.xls", FileFormat:=xlExcel5
In der Original-Datei sind geiwsse Zellen miteinander verbunden. Das soll ja auch so sein. aber in der SAuf_Dat.xls sind diese Felder NICHT mehr miteinander verbunden. Das hat zum Effekt das er nur rauten (#) darstellt weil der Wert nicht mehr in die zelle passt
nun habe ich es mal mit
ActiveWorkbook.SaveAs "C:\Temp\SAuf_Dat.xls", FileFormat:=xlExcel7
probiert. Das Funktioniert soweit, das er die zellen noch verbunden anziegt und somit den Wert richtig darstellt.
Dummer Nebeneffekt ist aber das er das Makro wieder ausführt und die Datei wieder versucht zu speichern.
er fragt dann ob er überschreiben soll, man klickt "ja" und gut ist. Aber das ist nervig und wird em Kunden nicht gefallen :-)
Also hat jemand eine Idee wie ich das unterbinden kann? also das er wirklich nur die xls Datei speichert und NICHT das Makro?
Thx for Help!
MfG
Michael
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveWorkbook.SaveAs (FileFormat)
Ulf
Das Übel sind die verbundenen Zellen, die gabs in diesen Versionen noch nicht.
Ulf
AW: ActiveWorkbook.SaveAs (FileFormat)
Michael
ja das weiss ich
kann man das denn irgendwie doch machen?
ich muss es ja nich in Excel 5 abspeichern ich kann es auch in Exxcel 200 abspeichern oder so. Das Problem ist nur: Der speichert die Macros mit, und das will ich nicht :-(
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveWorkbook.SaveAs und FileFormat in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Arbeitsmappe in Excel mit VBA zu speichern, kannst du die ActiveWorkbook.SaveAs Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen -> Modul.

  3. Gib den folgenden Code ein:

    Sub SpeichernAls()
       Dim Dateiname As String
       Dateiname = "C:\Temp\SAuf_Dat.xls"
       ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlExcel5
    End Sub
  4. Ändere das FileFormat: Wenn du die Datei in einem anderen Format speichern möchtest, ändere FileFormat:=xlExcel5 in das gewünschte Format (z.B. xlOpenXMLWorkbook für .xlsx).

  5. Führe das Makro aus: Drücke F5, um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Problem: Zellen sind nach dem Speichern nicht mehr verbunden und zeigen Rauten an.

    • Lösung: Verwende FileFormat:=xlExcel7, um die verbundenen Zellen zu erhalten, aber beachte, dass dabei die Makros gespeichert werden. Alternativ kannst du xlOpenXMLWorkbook verwenden, um die Datei im .xlsx-Format zu speichern.
  • Problem: Beim Speichern fragt Excel, ob du die Datei überschreiben möchtest.

    • Lösung: Du kannst das Makro so anpassen, dass es keine weiteren Speicherungsvorgänge ausführt. Füge eine Bedingung hinzu, um das erneute Speichern zu vermeiden.

Alternative Methoden

Wenn du die ActiveWorkbook.SaveAs Methode nicht verwenden möchtest, gibt es auch andere Möglichkeiten:

  • ThisWorkbook.SaveAs: Speichert die aktuelle Arbeitsmappe, aber du kannst die Dateinamen und Formate ebenfalls anpassen.

    ThisWorkbook.SaveAs Filename:="C:\Temp\MeineDatei.xlsx", FileFormat:=xlOpenXMLWorkbook
  • Application.ActiveWorkbook.Save: Speichert die Arbeitsmappe ohne Änderungen an Dateinamen oder Format.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen können, ActiveWorkbook.SaveAs effektiver zu nutzen:

  1. Speichern im xlsx-Format:

    Sub SpeichernAlsXLSX()
       ActiveWorkbook.SaveAs Filename:="C:\Temp\SAuf_Dat.xlsx", FileFormat:=xlOpenXMLWorkbook
    End Sub
  2. Speichern ohne Makros:

    Sub SpeichernOhneMakros()
       ActiveWorkbook.SaveAs Filename:="C:\Temp\SAuf_Dat.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Sub

Tipps für Profis

  • Verwende Variablen für Dateipfade: Um den Code flexibler zu gestalten, speichere den Dateipfad in einer Variablen.

    Dim Pfad As String
    Pfad = "C:\Temp\"
    ActiveWorkbook.SaveAs Filename:=Pfad & "SAuf_Dat.xls", FileFormat:=xlExcel5
  • Fehlerbehandlung einfügen: Füge eine Fehlerbehandlung hinzu, um Probleme beim Speichern abzufangen.

    On Error GoTo Fehlerbehandlung
    ActiveWorkbook.SaveAs Filename:="C:\Temp\SAuf_Dat.xls", FileFormat:=xlExcel5
    Exit Sub
    
    Fehlerbehandlung:
      MsgBox "Fehler beim Speichern: " & Err.Description

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen SaveAs und Save? SaveAs speichert die Arbeitsmappe unter einem neuen Dateinamen oder Format, während Save die aktuelle Datei speichert, ohne den Namen zu ändern.

2. Wie verhindere ich, dass Makros beim Speichern mit gespeichert werden? Verwende das Format xlOpenXMLWorkbook, um sicherzustellen, dass keine Makros in die gespeicherte Datei übernommen werden.

3. Wie kann ich die Dateiformate für SaveAs herausfinden? Du kannst die verschiedenen FileFormat Konstanten in der Excel VBA-Dokumentation nachschlagen oder im VBA-Editor xl gefolgt von der Tabulatortaste verwenden, um Vorschläge zu erhalten.

4. Was passiert, wenn ich ein nicht unterstütztes Format wähle? Excel gibt eine Fehlermeldung aus, wenn das gewählte Format nicht mit der Datei kompatibel ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige