Speichern unter Pfad und Dateiname vorgeben in Excel VBA
Schritt-für-Schritt-Anleitung
Um in Excel VBA beim "Speichern unter" sowohl einen Pfad als auch einen Dateinamen vorzugeben, kannst Du den folgenden Code verwenden. Dieser Code öffnet den Dialog "Speichern unter" und setzt den voreingestellten Pfad sowie den Dateinamen. Dabei wird der Pfad statisch auf C:\Users\Peter\Desktop\Test\
gesetzt.
Sub SpeichernUnterPfadVorgeben()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Datei speichern"
.InitialFileName = "C:\Users\Peter\Desktop\Test\" & Format(Date, "yymmdd") & " - " & Range("B13").Value
.ButtonName = "Speichern"
.FilterIndex = 2
If .Show = -1 Then ' Wenn der Benutzer auf "Speichern" klickt
.Execute
End If
End With
End Sub
Erklärung des Codes:
.InitialFileName
gibt den Pfad und Dateinamen an, der im Dialog angezeigt wird.
Format(Date, "yymmdd")
erstellt ein Datum im Format Jahr-Monat-Tag.
Range("B13").Value
zieht den Namen aus Zelle B13.
Häufige Fehler und Lösungen
Fehler 1: Der Pfad existiert nicht.
Lösung: Stelle sicher, dass der Pfad C:\Users\Peter\Desktop\Test\
tatsächlich existiert. Andernfalls ändere den Pfad auf einen gültigen Ort.
Fehler 2: Der Dialog zeigt den falschen Dateinamen an.
Lösung: Überprüfe den Inhalt der Zelle B13. Wenn diese leer ist, wird ein unvollständiger Dateiname angezeigt.
Alternative Methoden
Wenn Du in Excel speichern möchtest, ohne VBA zu verwenden, kannst Du den Pfad manuell im "Speichern unter"-Dialog auswählen. Dies ist jedoch weniger effizient, wenn Du häufig dasselbe Ziel verwendest.
Praktische Beispiele
Hier ist ein Beispiel, wie Du den Dialog auch für verschiedene Dateitypen anpassen kannst. Um den Dateityp vorzugeben, kannst Du den Filter anpassen:
Sub SpeichernUnterPfadUndDateitypVorgeben()
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Datei speichern"
.InitialFileName = "C:\Users\Peter\Desktop\Test\" & Format(Date, "yymmdd") & " - " & Range("B13").Value
.ButtonName = "Speichern"
.Filters.Clear
.Filters.Add "Excel-Arbeitsmappe", "*.xlsx"
.FilterIndex = 1
If .Show = -1 Then
.Execute
End If
End With
End Sub
Tipps für Profis
- Nutze Variablen für den Pfad, damit Du diesen leicht ändern kannst, ohne den gesamten Code anpassen zu müssen.
- Füge Error-Handling hinzu, um den Code robuster zu machen. Beispiel:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
FAQ: Häufige Fragen
1. Frage: Kann ich den Pfad dynamisch ändern?
Antwort: Ja, Du kannst den Pfad in eine Variable speichern und diese Variable im InitialFileName
verwenden.
2. Frage: Funktioniert dieser Code in Excel 2016?
Antwort: Ja, der Code funktioniert in Excel 2016 und neueren Versionen, die VBA unterstützen.