Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Pfadangabe in Workbook_BeforeSave
#1
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
Antworten Top
#2
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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
Antworten Top
#4
Hallo Andreas,

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

Gruß Uwe
Antworten Top
#5
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
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
Antworten Top
#7
@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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste