Fehler beim Abbrechen des Speichern-Dialoges in Excel-Makro
Hallo!
Folgendes Problem tritt auf:
Ich möchte in meinem Excel-Makro die Arbeitsmappe speichern mit dem Befehl
ActiveWorkbook.SaveAs filename:=fname
wobei fname die Variable ist, die den Dateinamen enthält. Es erscheint daraufhin der "Speichern unter"-Dialog, und das Feld Dateineme ist mit dem Dateinamen vorausgefüllt. Klickt man nun auf speichern, funktioniert alles normal, die Mappe wird gespeichert. Klickt man aber auf Abbrechen, wird der Vorgang nicht abgebrochen, sondern die Mappe unter Falsch.xls gespeichert.
Wie kann man das unterbinden bzw. wo liegt die Ursache für dieses Problem?
Danke
Antwort schreiben
Antwort 1 von Kauz vom 12.07.2021, 15:00 Options
Hallo Sdisno...
nur allein mit der Zeile:
ActiveWorkbook.SaveAs filename:=fname
öffnet sich bei mir kein speichern unter Dialog!
Der muß vorher aufgerufen werden.
Dort erhält fname auch seinen Inhalt.
Wenn in dem Dialog auf abbrechen geklickt wird ist fname demzufolge leer.
Und unter einer leeren Pfadangabe kann man nicht speichern.
So könnte eine Lösung aussehen:
If fname <> "" Then
ActiveWorkbook.SaveAs Filename:=fname
Else
MsgBox "Vorgang abgebrochen!"
End If
Hoffe es hilft Dir weiter...
Gruß
Kauz
Antwort 2 von Sdisno vom 12.07.2021, 16:16 Options
Hallo Kauz!
Vielen Dank für die Antwort!
vorher gebe ich fname einen Wert mit der Zeile
fname = Application.GetSaveAsFilename("dateiname.xls")
danach folgt dann die Funktion
ActiveWorkbook.SaveAs filename:=fname
Vielleicht hat die Variable fname nach Abbruch nicht den Wert "" sondern "Falsch.xls"
Ich werde als folgendes probieren:
fname = Application.GetSaveAsFilename("dateiname.xls")
if fname <> "" And fname <> "Falsch.xls" then
ActiveWorkbook.SaveAs filename:=fname
Else
MsgBox "Vorgang abgebrochen"
Ich kann das aber erst morgen probieren, zuhauis hab ich kieb Ecxel.
Antwort 3 von nighty vom 13.07.2021, 07:22 Options
hi all ^^
statt ein and ,sollte ein or zu sehen sein
gruss nighty
Antwort 4 von nighty vom 13.07.2021, 07:25 Options
hi all ^^
erklärung
es war mir nicht möglich eine variable zu fuellen und gleichzeitig leer zu halten :-)))
gruss nighty
Antwort 5 von coros vom 13.07.2021, 08:38 Options
Hallo Hallo Sdisno,
Du darfst nicht auf "Falsch.xls" abfragen, sondern auf das Schlüsselwort "False". Wenn Du bei dem Speichern unter-Dialog auf Abbrechen drückst, erhälst Du als Rückgabewert das Schlüsselwort "False", daher danach abfragen. Dein Makro müsste dann also wie folgt lauten:
fname = Application.GetSaveAsFilename("dateiname.xls")
If fname <> "" And fname <> False Then
ActiveWorkbook.SaveAs Filename:=fname
Else
MsgBox "Vorgang abgebrochen"
End If
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 6 von Sdisno vom 19.07.2021, 21:00 Options
Hi!
So hats funktioniert::
fname = Application.GetSaveAsFilename("dateiname.xls")
If fname <> "" And fname <> "Falsch" Then
ActiveWorkbook.SaveAs Filename:=fname
Else
MsgBox "Vorgang abgebrochen"
End If
Das Schlüsselwort ist tatsächlich "Falsch", wahrscheinlich, weil die Excel-Version, mit der ich arbeite auf deutsch eingestellt ist. Jedenfalls habe ich nach
fname = Application.GetSaveAsFilename("dateiname.xls")
fname abgefragt mittels
Msgbox fname
und habe nach Betätigen des Abbruch-Knopfes im Speichern unter-Dialog den Wert "Falsch" bekommen.
Beste Grüße und Danke an alle fleißigen Antworschreiber
Antwort 7 von Kauz vom 19.07.2021, 21:19 Options
Hallo Sdisno...
na prima, wenn es jetzt funktioniert!
Danke schön für Deine Rückmeldung.
Grüße Kauz