Clever-Excel-Forum

Normale Version: Pfadangabe in Workbook_BeforeSave
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich möchte eine Vorlage per vba bei ersten abspeichern als xlsm speichern.
Soweit habe ich auch alles hinbekommen, aber ich weiß nicht wie und wo die Pfadangabe reinkommt.

Desweiteren möchte ich dass außer xlsm, auch xltm un xlsx als Auswahl angezeigt werden. Angezeigt werden die Formate, bloß kann ich nichts abspeichern.
Ist das möglich?
Hier ist mein Code:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Me.Path = "" Then
Dim varWorkbookName
   Application.EnableEvents = False
   varWorkbookName = Application.GetSaveAsFilename("Test", FileFilter:="Excel-Arbeitsmappe mit Makros (*.xlsm), *.xlsm,Excel-Arbeitsmappe (*.xlsx), *.xlsx),Excel-Vorlage mit Makros (*.xltm), *.xltm", Title:="Speichern als")
   If VarType(varWorkbookName) = vbBoolean Then Cancel = True
   If Not Cancel Then _
           ThisWorkbook.SaveAs Filename:=varWorkbookName, FileFormat:=52
   Cancel = True
   Application.EnableEvents = True
 End If
End Sub

Danke im vorraus
Andreas
Hallo Andreas,

wenn Du das Fileformat mit 52 fest vorgibst, brauchst Du auch keine Auswahl ...
Du bekommst ja über den Filenamen die Erweiterung und könntest in Abhängigkeit davon den Filetyp einsetzen.
Vielen Dank für den Tip.

Eigentlich logisch, aber ich bin kein VBA-Profi.
Momentan bin ich im Stadium "learning by doing".

Gibt es auch sowas einfaches für die Pfadangabe?


Gruß
Andreas
Hallo Andreas,

varWorkbookName enthält doch den im Dialog gewählten Pfad.

Gruß Uwe
Hallo Andreas,

ich würde es so lösen:

Code:
Select Case Ucase(Right(varWorkbookName,4))
  Case "XLSM"
    FileFormatNum = 52
  Case "XLTM"
    FileFormatNum = 53
  Case "XLSX"
    FileFormatNum = 51
End Select

... und dann beim Speichern die Variable nutzen. Eventuell blendest Du noch die Meldung aus, dass die Makros verloren gehen, wenn Du eine entsprechende Datei als xlsx speicherst. Ansonsten könnte es je nach Reaktion des users zu einem Fehler kommen.
Eine Übersicht der Nummern findest Du übrigens bei Microsoft, wenn Du danach suchst: microsoft file format enumeration
Hallo Uwe,

vielen Dank.
Ich war immer der Meinung, dass der Pfad einzeln angegeben werden muss.
So muss er ja "nur" vor den Namen gehängt werden.

Wenn alles so einfach wäre.

Gruß
Andreas
@schauan

danke für den Vorschlag. Werde ich so nehmen.
Leider haben sich unsere Antworten überschnitten und ich habe Deine Nachricht erst jetzt gelesen.

Gruß
Andreas