VBA: Speichern unter... Abbrechen im Excel-Dialog
Schritt-für-Schritt-Anleitung
Um den "Speichern unter..." Dialog in Excel zu nutzen und dabei zu verhindern, dass der Inhalt in Zelle AF2 geschrieben wird, wenn der Benutzer auf "Abbrechen" klickt, kannst Du den folgenden VBA-Code verwenden:
Public Sub SpeichernUnterEntwurf(control As IRibbonControl)
Dim Dateiname As String
With ThisWorkbook.Worksheets("Übersicht")
Dateiname = "KALK " & .Range("F3").Text & "_" & .Range("F4").Text & "_" & _
.Range("B5").Text & .Range("F5").Text & " " & _
VBA.Environ("Username") & " " & Format$(Date, "YYYY-MM-DD") & "_Entwurf"
End With
With Application.FileDialog(msoFileDialogSaveAs)
.FilterIndex = 2
.InitialFileName = "\\Server0150\Anlage1\Entwurf\" & Dateiname
If .Show Then
ThisWorkbook.Worksheets("Übersicht").Range("AF2").Value = "Entwurf"
.Execute
End If
End With
End Sub
Dieser Code fragt den Benutzer nach einem Speicherort und Dateinamen. Wenn der Benutzer jedoch den Dialog abbricht, wird der Inhalt in Zelle AF2 nicht geschrieben.
Häufige Fehler und Lösungen
Fehler 1: Der Code schreibt "Entwurf" in Zelle AF2, auch wenn der Dialog abgebrochen wird.
Lösung: Stelle sicher, dass das If .Show Then
korrekt implementiert ist, wie im obigen Code gezeigt. Nur wenn der Benutzer tatsächlich auf "Speichern" klickt, sollte der Wert geschrieben werden.
Alternative Methoden
Eine alternative Methode besteht darin, die ActiveWorkbook.saved
-Eigenschaft zu nutzen, um zu überprüfen, ob Änderungen gespeichert wurden, bevor Du den Dialog öffnest. Dies kann in Kombination mit dem vorherigen Code verwendet werden.
If Not ActiveWorkbook.Saved Then
' Code zum Öffnen des Speichern-unter-Dialogs
End If
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie Du den Code in Dein Excel-Dokument integrieren kannst:
- Öffne den VBA-Editor (Alt + F11).
- Füge ein neues Modul hinzu.
- Kopiere den oben stehenden Code in das Modul.
- Weise dem Makro eine Schaltfläche in Deinem Excel-Dokument zu, um den Dialog zu starten.
Tipps für Profis
- Nutze die
Application.FileDialog
-Objekte mit verschiedenen Optionen, um die Benutzererfahrung zu verbessern.
- Experimentiere mit den Filteroptionen, um nur bestimmte Dateitypen im Dialog anzuzeigen.
FAQ: Häufige Fragen
1. Wie kann ich den Speicherort des Dialogs ändern?
Du kannst den InitialFileName
im Code anpassen, um einen anderen Standard-Speicherort festzulegen.
2. Unterstützt dieser Code alle Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen (2010 und später) funktionieren, die das FileDialog-Objekt unterstützen.