Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox bei Abbrechen statt Debuggen!

Forumthread: MsgBox bei Abbrechen statt Debuggen!

MsgBox bei Abbrechen statt Debuggen!
28.02.2005 13:45:39
DonFiala
Hallo,
hab mein Makro fast fertig und es fehlt nur noch ne Kleinigkeit! Wie krieg ich es hin, dass wenn ich in nachfolgendem Makro nicht Speicher, sondern auf Abbrechen drücke nicht debuggen erscheint sondern ne Messagebox mit dem Hinweis das die Datei nicht gespeichert wurde.
Die Krönung wäre, wenn bei nicht erfolgreichem Speichern - wenn der Pfad falsch ist - auch ne entsprechende Fehlermeldung möglich wäre!
Denke mal bei letztgenanntem brauchts gar keine komplizierte Abfrage, da es ja nur der zweite nicht erfolgreich gespeicherte Fall ist und dann wieder debuggen erscheinen würde...
1000 Dank an die VBA Götter im Forum!
Gruss michi
Dim DName As String, Dateiname As String, Pfad As String
Pfad = Range("U2")
DName = Range("R2")
Dateiname = Pfad & "\" & DName & Format(Range("G7"), "YYYY.MMM") & ".xls"
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!

ActiveWorkbook.SaveAs Filename:=Dateiname
MsgBox "Datei wurde erfolgreich unter dem Namen " & ActiveWorkbook.Name & " gespeichert."
ActiveWorkbook.Close
End Sub
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox bei Abbrechen statt Debuggen!
MichaV
Hi Michi,
versuch mal
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!
On Error Resume Next
dim ArbVerz as string
ArbVerz = CurDir
ChDir Pfad
If Err.Number Then MsgBox Err.Description: Exit Sub
ChDir ArbVerz
ActiveWorkbook.SaveAs Filename:=Dateiname
If Err.Number = 1004 Then MsgBox "Datei nicht gespeichert": Exit Sub
On Error GoTo 0
MsgBox "Datei wurde erfolgreich unter dem Namen " & ActiveWorkbook.Name & " gespeichert."
Gruß! Micha
Anzeige
AW: MsgBox bei Abbrechen statt Debuggen!
28.02.2005 14:17:34
DonFiala
Hallo!
Wenn ich einen Hut hätte, dann würde ich Ihn ziehen. Um sowas hinzukrigen bräuchte ich mein fettes Buch 2 Tage und Hilfe dann wärs nichtmal sicher ob ich's schaff! 1000end Dank! Ich bin immer wieder verblüfft!
Beste Grüsse michi
Danke ;o)
MichaV
AW: Danke ;o)
28.02.2005 14:50:20
DonFiala
Das einzige was vielleicht noch is, wenn Du/Ihr so gut seid:
Wenn ich "Abbrechen" oder "nicht Speichern" drücke bleibt die neu erzeugte Datei offen:
Mappe XXX usw. Kann man die auch irgendwie ins schließen integrieren?
Mit ActiveWorkbook.Close geht es nicht, weil er es dann zu früh, noch vor der eigentlichen Abfrage schließen will...
Aber nur wenn Du/Ihr mal ganz viel Zeit habt, denn es is auch schon so wie es ist genial...
DankeDankeDankDankeDanke!!!!!
Anzeige
AW: MsgBox bei Abbrechen statt Debuggen!
MichaV
Hi,
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!
On Error GoTo Fehler
ArbVerz = CurDir
ChDir Pfad
ChDir ArbVerz
ActiveWorkbook.SaveAs Filename:=Dateiname
MsgBox "Datei wurde erfolgreich unter dem Namen " & ActiveWorkbook.Name & " gespeichert."
ActiveWorkbook.Close
Exit Sub
Fehler:
If Err.Number = 1004 Then
MsgBox "Datei nicht gespeichert"
Else
MsgBox Err.Description: Exit Sub
End If
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
End Sub
Gruß- Micha
Anzeige
AW: MsgBox bei Abbrechen statt Debuggen!
28.02.2005 16:11:16
DonFiala
Hallo,
es is einfach zu geil, Danke es klappt! Nur wenn der Pfad ungültig is bleibt die Datei offen, aber das is nicht so schlimm...
VielenVielen Dank, bin echt beeindruckt!
AW: MsgBox bei Abbrechen statt Debuggen!
MichaV
Na klar!
Hab vergessen, das Exit Sub in
Else
MsgBox Err.Description: Exit Sub
End If
zu löschen. Nimm das raus, dann funzt es.
Gruß und viel Spaß! Micha
Anzeige
AW: MsgBox bei Abbrechen statt Debuggen!
01.03.2005 10:03:59
DonFiala
Hallo Micha,
habs geändert:
Else
MsgBox Err.Description ': Exit Sub
End If
Und es passt! 100end Dank echt Spitze!
;
Anzeige
Anzeige

Infobox / Tutorial

MsgBox bei Abbrechen statt Debuggen


Schritt-für-Schritt-Anleitung

Um eine MsgBox anstelle des Debuggen-Dialogs anzuzeigen, wenn ein Speichern-Vorgang abgebrochen wird oder ein Fehler auftritt, kannst Du folgendes VBA-Skript verwenden:

Sub SpeichernMitFehlerbehandlung()
    Dim DName As String, Dateiname As String, Pfad As String
    Pfad = Range("U2")
    DName = Range("R2")
    Dateiname = Pfad & "\" & DName & Format(Range("G7"), "YYYY.MMM") & ".xls"

    On Error GoTo Fehler
    ActiveWorkbook.SaveAs Filename:=Dateiname
    MsgBox "Datei wurde erfolgreich unter dem Namen " & ActiveWorkbook.Name & " gespeichert."
    ActiveWorkbook.Close
    Exit Sub

Fehler:
    If Err.Number = 1004 Then
        MsgBox "Datei nicht gespeichert"
    Else
        MsgBox Err.Description
    End If
    ActiveWorkbook.Saved = True
    ActiveWorkbook.Close
End Sub

Hierbei wird die On Error GoTo-Anweisung verwendet, um Fehler abzufangen und die entsprechende Fehlermeldung auszugeben.


Häufige Fehler und Lösungen

  1. Fehlernummer 1004 - Datei nicht gespeichert
    Wenn Du diese Fehlermeldung erhältst, kann es daran liegen, dass der Pfad ungültig ist. Überprüfe, ob der in Range("U2") angegebene Pfad korrekt ist.

  2. Datei bleibt offen
    Wenn die Datei nach einem Abbruch oder einer Fehlermeldung offen bleibt, stelle sicher, dass der ActiveWorkbook.Close-Befehl an der richtigen Stelle steht, und dass ActiveWorkbook.Saved = True gesetzt ist.


Alternative Methoden

Eine alternative Methode besteht darin, die Fehlerbehandlung mit On Error Resume Next zu verwenden. Hierbei wird der Code weiterhin ausgeführt, selbst wenn Fehler auftreten. Dies kann jedoch dazu führen, dass Du nicht alle Fehler siehst:

On Error Resume Next
ActiveWorkbook.SaveAs Filename:=Dateiname
If Err.Number <> 0 Then
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0

Denke daran, dass diese Methode nicht immer die beste Wahl ist, da sie das Debuggen erschweren kann.


Praktische Beispiele

Hier ist ein konkretes Beispiel, wie Du die Fehlerbehandlung in einem typischen Excel-Makro implementieren kannst:

Sub BeispielMakro()
    Dim DateiPfad As String
    DateiPfad = "C:\MeinOrdner\MeineDatei.xls"

    On Error GoTo Fehler
    ActiveWorkbook.SaveAs Filename:=DateiPfad
    MsgBox "Die Datei wurde erfolgreich gespeichert."
    Exit Sub

Fehler:
    MsgBox "Fehler beim Speichern: " & Err.Description
End Sub

In diesem Beispiel wird die Nachricht "Fehler beim Speichern" angezeigt, wenn der Speichervorgang nicht erfolgreich war.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um Excel-Dialoge während des Speicherns zu unterdrücken.
  • Implementiere eine umfassende Fehlerprotokollierung, um zu verstehen, warum ein Speichern möglicherweise fehlschlägt.
  • Teste Dein Makro gründlich, um sicherzustellen, dass alle möglichen Fehlerfälle abgedeckt sind.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Datei immer gespeichert wird?
Du kannst die On Error-Anweisung verwenden, um sicherzustellen, dass die Datei unter jedem Umstand gespeichert wird, indem Du die Fehler abfängst und entsprechende Maßnahmen ergreifst.

2. Was ist der Unterschied zwischen On Error Resume Next und On Error GoTo?
On Error Resume Next überspringt den fehlerhaften Code und fährt fort, während On Error GoTo den Code an eine spezifische Fehlerbehandlungsroutine weiterleitet.

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