Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


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
to 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-2016)
to 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
to top
#4
Hallo Andreas,

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

Gruß Uwe
to 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-2016)
to 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
to 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
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Pfadangabe ohne Laufwerk (=...) Caiphas 17 713 02.08.2016, 21:23
Letzter Beitrag: schauan

Gehe zu:


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