Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
492to496
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
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

PROBLEME BEIM SPEICHERN UNTER

PROBLEME BEIM SPEICHERN UNTER
04.10.2004 12:19:17
christoph
HALLO ZUSAMMEN.
Ich speicher in meinem Tool über Application.GetSaveAsFilename einzelne Tabellenblätter, was auch so funktioniert wie ich es mir vorstelle.
Nur wenn bereits eine Datei mit dem entsprechenden Namen existiert kommt die Mitteilung:
"Die Datei mit dem Namen ... existiert schon an diesem Platz.soll sie ersetzt werden" "Ja" "Nein" "Abbrechen".
Klicke ich auf "Ja" läuft alles Prima, aber wenn ich auf nein oder Abbrechen Klicke kommt eine Fehlermeldung.
Hat jemand eine Ahnung welchen Name die Aplikation hat, damit ich die Fehlermeldung abfangen kann?
Danke für Hilfe und Anregungen
Christoph

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

Betreff
Datum
Anwender
Anzeige
AW: PROBLEME BEIM SPEICHERN UNTER
Ulf
GetSaveAsFilename-Methode
Anmerkungen
Diese Methode gibt den ausgewählten Dateinamen oder den vom Benutzer eingegebenen Namen zurück. Der zurückgegebene Name kann eine Pfadangabe enthalten. Gibt False zurück, wenn der Benutzer das Dialogfeld mit Abbrechen verlässt.
Diese Methode kann u.U. das aktuelle Laufwerk oder den aktuellen Ordner ändern.
Ulf
AW: PROBLEME BEIM SPEICHERN UNTER
04.10.2004 13:45:50
christoph
Ist mir bekannt.
Die GetSaveAsFilename-Methode funktioniert ja auch bei mir, aber zum besseren Verständnis eine Erläuterung.

Die GetSaveAsFilename-Methode habe ich meinen Bedürfnissen angepasst. Über einen Button sollen 2 bestimmte Tabellenblätter in einer seperaten Datai, unter einem von Daten aus der Datei abhängigen Namen, abgespeichert werden.
Existiert eine Datei mit diesem Namen bereits in dem gewählten Verzeichnis, wird mit ("Die Datei mit dem Namen ... existiert schon an diesem Platz.soll sie ersetzt werden" "Ja" "Nein" "Abbrechen".) gefragt ob die Datei überschrieben werden soll oder nicht.
Klicke ich auf ja, funktioniert es. Klicke ich auf "Abbrechen" oder "Nein" so kommt die Fehlermeldung: Laufzeitfehler 1004
Die methode "SaveAs" für das Objekt _Workbook ist fehlgeschlagen. Ist ja auch an für sich klar, da ich dies in meiner Routine nicht definiert habe. Jetzt benötige ich den Namen dieser Application um so eine Routine Entwickeln zu können.
Weiß jemand den Namen oder hat einen Alternativen Lösungsvorschlag?
Hier noch mein Code

Sub SPEICHERN()
Dim Datum As Variant
Dim Activ As String
Application.ScreenUpdating = False
Projektname = Worksheets("Bewertung").Range("D4")
Datum = Format(Date, "yymmdd")
Sheets(Array("Bewertung", "Eingegebene Daten")).Select
Sheets(Array("Bewertung", "Eingegebene Daten")).Copy
' SPEICHERN MIT EINEM VORGEGEBENEN DATUM UND NAMEN U
NeuName = Datum & "" & Projektname
DlgAnswer = Application.GetSaveAsFilename(InitialFileName:=NeuName, _
fileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
If DlgAnswer <> "Falsch" Then
ActiveWorkbook.SaveAs Filename:=NeuName, FileFormat:=xlNormal
ActiveWorkbook.Close
Else: ActiveWorkbook.Close SaveChanges:=False
End If
Application.ScreenUpdating = True
End Sub

Dankend für jede Hilfe
christoph
Anzeige
AW: PROBLEME BEIM SPEICHERN UNTER
K.Rola
Hallo,
du kannst das Problem ganz einfach mit einer On Error-Anweisung umschiffen:
Option Explicit
Sub GetSaveAs_Test()
Dim GetName As Variant
GetName = Application.GetSaveAsFilename("GetSaveAs_Test_BAK", "Excel-Arbeitsmappe (*.xls), *.xls")
If GetName <> False Then
On Error GoTo ENDE
ThisWorkbook.SaveAs GetName
End If
Exit Sub
ENDE:
MsgBox "Speichern durch Benutzer abgebrochen!"
End Sub

Gruß K.Rola
AW: PROBLEME BEIM SPEICHERN UNTER
05.10.2004 08:46:37
christoph
Moin zusammen,
erstmal danke für dein Tip.
Ich möchte die Routine ("Die Datei mit dem Namen ... existiert schon an diesem Platz.soll sie ersetzt werden" "Ja" "Nein" "Abbrechen") aber ganz normal durchlaufen können. Klappt ja auch eigentlich, es sei denn ich klicke auf abbrechen oder nein. Dann bekomme ich die oben beschriebenen Fehlermeldung.
Ich könnte natürlich eine eigenen Ruotine entwickeln, aber dazu müsste ich wissen wie ich überprüfen kann ob eine Datei mit diesem Namen Bereits in dem entsprechendem Verzeichnis existiert.
Gruß christoph
Anzeige
AW: PROBLEME BEIM SPEICHERN UNTER
K.Rola
"Ich möchte die Routine ("Die Datei mit dem Namen ... existiert schon an diesem Platz.soll sie ersetzt werden" "Ja" "Nein" "Abbrechen") aber ganz normal durchlaufen können"
Macht mein Code ja. Du brauchst nur die Meldung bei Abbruch/Nein, rauszunehmen:
Option Explicit

Sub GetSaveAs_Test()
Dim GetName As Variant
GetName = Application.GetSaveAsFilename("GetSaveAs_Test_BAK", "Excel-Arbeitsmappe (*.xls), *.xls")
If GetName <> False Then
On Error GoTo ENDE
ThisWorkbook.SaveAs GetName
End If
Exit Sub
ENDE:
End Sub

Gruß K.Rola
Danke, aber ...
05.10.2004 14:50:11
christoph
Danke für deine Hilfe und sorry das meine antwort so lange gedauert hat, bin irgendwie via Mail nicht benachrichtigt worden.
Deine Lösung wäre eine Notlösung. Leiber wäre mir wenn ich die Fehlermeldung nicht umgehe, sondern fände es besser wenn ich den Die Apllication ganz normal benutzen könnte.Also bei ja überschreiben, bei nein zurück in Application.GetSaveAsFilename um den Namen zu ändern und bei Abbrechen wird es halt abbgebrochen.
Danke weiterhin für jeden Tip, jede Hilfe oder Anregung
Christoph
Anzeige
AW: Danke, aber ...
K.Rola
Hallo,
dann viel Spaß mit VBA-Kenntnissen "nein".
Gruß K.Rola
AW: Danke, aber ...
08.10.2004 07:27:22
christoph
hallo K.Rola,
"VBA-Kenntnisse Nein" ist übertrieben. Mittlerwiele bekomme ich auch Sachen ohne Makrorekorder hin (mit Recherche im Archiv). Nur für "VBA-Kenntnisse gut" fehlt noch einiges und leider ist die mögliche Differenzierung bie den VBA- Kenntnissen hier nicht so gut.Habe aber eine Lösung hinbekommen. Ist eigentlich ganz simpel:

Sub SPEICHERN()
'SPEICHERN DER TABELLEN "BEWERTUNG" & "ENGEGEBENE DATEN" IN SEPERATER DATEI
Dim DlgAnswer As Variant
Application.ScreenUpdating = False
Projektname = Worksheets("Bewertung").Range("D4")
Datum1 = Worksheets("Bewertung").Range("B29")
Sheets(Array("Bewertung", "Eingegebene Daten")).Select
Sheets(Array("Bewertung", "Eingegebene Daten")).Copy
' SPEICHERN MIT EINEM VORGEGEBENEN DATUM UND NAMEN
NeuName = Datum & "_" & Projektname
SprungB:
DlgAnswer = Application.GetSaveAsFilename(InitialFileName:=NeuName, _
fileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
'ABFRAGE FALLS DATEI BEREIT IM GEWÄHLTEN VERZEICHNIS VORHANDEN
If DlgAnswer <> False Then
Antwort = Dir(DlgAnswer)
If Antwort <> "" Then
AntwortB = MsgBox("Die Datei mit dem Namen " & Antwort & " existiert bereits. Soll sie ersetzt werden ?", vbYesNoCancel + vbQuestion, "Microsoft Excel")
If AntwortB = vbCancel Then
Application.DisplayAlerts = False
ActiveWorkbook.Close Savechanges:=False
Application.ScreenUpdating = True
Exit Sub
ElseIf AntwortB = vbYes Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=NeuName, FileFormat:=xlNormal
ActiveWorkbook.Close
ElseIf AntwortB = vbNo Then
GoTo SprungB:
End If
Else:
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=NeuName, FileFormat:=xlNormal
ActiveWorkbook.Close
End If
Else
Application.DisplayAlerts = False: ActiveWorkbook.Close
End If
Application.ScreenUpdating = True
End Sub

Gruß christoph
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige