Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SaveAs: Fehler bei Abbruch abfangen?

SaveAs: Fehler bei Abbruch abfangen?
06.05.2004 22:36:45
Michael
Einen wunderschönen guten Abend,
In einer UserForm möchte ich die Möglichkeit einbauen, über einen Button eine Datei unter einem anderen Namen zu speichern. Der Name wird inkrementell immer um 1 erhöht (als Vorschlag). Das klappt mit der unten stehenden Methode auch ganz gut.
Bei Abbruch oder leerem Wert passiert wie gewünscht gar nichts. Wenn man aber nun eine Datei auswählt, die bereits vorhanden ist und in der anschließenden Abfrage "Soll die Datei ersetzt werden" mit Abbrechen oder Nein antwortet, dann erscheint die Fehlermeldung 1004 für die Methode SaveAs.
Wie kann ich diesen Fehler abfangen, so dass in diesem Fall ebenfalls gar nichts passiert? In der Variablen fName steht noch die ausgewählte Datei, eine Abfrage müsste also nachher erfolgen? Als Notanker gibt es ja On Error, aber vielleicht kennt jemand eine elegantere Lösung?
Vielen Dank und nächtliche Grüße
Michael

Private Sub SvScenario_Click()
Dim LfdNr As Integer
InstallRootPath = Sheets("GeneralSettings").Range("B9")
NwName = Sheets("GeneralSettings").Range("B26")
ChDir InstallRootPath + "\MyScenarios"
'Lfd. Nummer über Anzahl Excel-Files bestimmen
Set fs = Application.FileSearch
With fs
.LookIn = InstallRootPath + "\MyScenarios"
.Filename = "*" + NwName + "*.xls"
.Execute
LfdNr = .FoundFiles.Count
End With
fName = Application.GetSaveAsFilename("MyScenario_" + NwName + "_" + CStr(Date$) + "_" + CStr(LfdNr + 1) + ".xls", _
fileFilter:="Excel Files (*.xls), *.xls", Title:="Save Scenario As ...")
If fName <> "" And fName <> False Then
ActiveWorkbook.SaveAs Filename:=fName
End If
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveAs: Fehler bei Abbruch abfangen?
Kurt
If fName "" And fName False Then
Die Abfrage führt bei Abbruch zum Fehler, weil da False zurückgegeben
wird, aber auf NullString abgefragt wird.
Kurt
AW: SaveAs: Fehler bei Abbruch abfangen?
Michael
Hallo Kurt,
in fName steht zum Zeitpunkt des Fehlers noch der Dateiname und nicht False. Wie und wo wird denn das False bei Abbruch übergeben?
Viele Grüße
Michael
AW: SaveAs: Fehler bei Abbruch abfangen?
Kurt
Bei Klick auf die Abbruchtaste ist der Wert = False
Kurt
AW: SaveAs: Fehler bei Abbruch abfangen?
Michael
Hallo Kurt,
ja das ist richtig für GetSaveAsFilename. Wenn ich jedoch auf eine bereits existierende Datei klicke, dann auf Speichern, dann ist der Rückgabewert eben genau dieser Dateiname. Es erscheint dann erst NACH der Abfrage
If fName "" And fName False Then ...
die Nachfrage, ob die bestehende Datei ersetzt werden soll. Zu dem Zeitpunkt hat fName immer noch als Wert den Dateinamen. Drücke ich nun auf "Ja", dann wird auch gespeichert. Drücke ich auf "Nein" oder "Abbrechen", dann habe ich den Laufzeitfehler 1004 in der nachfolgenden Zeile
ActiveWorkbook.SaveAs Filename:=fName
Also wenn ich jetzt kein riesiges Brett vor dem Kopf habe, dann hat das Ergebnis von GetSaveAsFilename mit der nachfolgenden Ausführung der Methode SaveAs nichts mehr zu tun!? *grübel*
Habe inzwischen aus Zeitgründen die Notbremse "On Error" gezogen. Wenn noch irgendjemand Rat weiß, nehme ich ihn gerne an, ansonsten belasse ich es bei der Fehlerbehandlung. Möglich wäre vielleicht auch eine Abfrage, ob fName bereits im entsprechenden Ordner existiert. Dann aber könnte man die Datei gar nicht mehr unter einem bestehenden Namen speichern.
Vielen Dank einstweilen und ein schönes Wochenende
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige