Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Speichern unter... abbrechen?

VBA Speichern unter... abbrechen?
28.05.2021 09:11:20
Micha
Hallo liebe Spezialisten, ich brauche mal wieder dringend Eure Unterstützung.
Mit dem folgende Code öffne ich den "Speichern unter..." Dialog bei dem der Dateiname und Speicherort vorgegeben wird.
Zudem wird in in Zelle AF2 "Entwurf" geschrieben.
Bis hierhin klappt das genau so wie es soll!
Nun mein Problem:
Wenn ich im "Speichern unter..." Dialog auf "Abbrechen" klicke soll der Code abgebrochen werden. Auch in Zelle AF2 soll nicht "Entwurf" geschrieben werden.
Für Euch bestimmt wieder nur ein Klacks, aber ich bekomme das nicht hin :-(
Freue mich auf Eure Hilfe.
Vorab vielen Dank
Micha

Public Sub SpeichernUnterEntwurf(control As IRibbonControl)
Dim Dateiname As String
Sheets("Übersicht").Range("AF2").Value = "Entwurf"
With ActiveWorkbook.Worksheets("Übersicht")
Dateiname = "KALK " & Sheets("Übersicht").Range("F3") & "_" & Sheets("Übersicht").Range("F4") & "_" & Sheets("Übersicht").Range("B5") & Sheets("Übersicht").Range("F5") & " " & 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 .Execute
End With
End Sub
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Speichern unter... abbrechen?
28.05.2021 09:17:19
Hajo_Zi
ich würde mal vermuten
With Application.FileDialog(msoFileDialogSaveAs)
if ActiveWorkbook.saved then
Sheets("Übersicht").Range("AF2").Value = "Entwurf"
End If
GrußformelHomepage
Anzeige
AW: VBA Speichern unter... abbrechen?
28.05.2021 09:26:44
Nepumuk
Hallo Micha,
teste mal:
Code:

[Cc]

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 & " " & _ Environ$("Username") & " " & Format$(Date, "YYYY-MM-DD") & "_Entwurf" End With With Application.FileDialog(msoFileDialogSaveAs) .FilterIndex = 2 .InitialFileName = "\\Server0150\Anlage1\Entwurf\" & Dateiname If .Show Then Worksheets("Übersicht").Range("AF2").Value = "Entwurf" .Execute End If End With End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Speichern unter... abbrechen?
28.05.2021 09:46:10
Micha
Hallo Nepumuk, hallo Hajo,
last Euch umarmen :-)
Ihr seid echt spitze und habt mir schon so oft geholfen.
Dieses mal habe ich die Lösung von Nepumuk genommen.
Das hat auf Anhieb geklappt.
Vielen Dank an Euch beide und ein schönes Wochenende
Micha
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul hinzu.
  3. Kopiere den oben stehenden Code in das Modul.
  4. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige