Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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
SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:00:13
Thorsten
Hallo,
ich habe ein Problemchen und komme einfach nicht weiter.
Ich habe eine Datei, die mittels Commandbutton eine Kopie dieser Datei speichern soll. Das funktioniert auch soweit. Wird jedoch der Vorgang abgebrochen, dann speichert Excel immer eine Datei mit dem Namen "False" ab. Ich bekomme dieses Fehlverhalten nicht in den Griff.
Hier der Code:

Private Sub CommandButton20_Click()
Dim NeuerName As String
Dim Pfad As String
Dim Filter As String
'Application.DisplayAlerts = False
NeuerName = ActiveSheet.Range("G19")
Filter = "Excel Files (*.xlsm), *.xlsm"
If NeuerName = "Keine Name" Then
MsgBox "Name in G19 eingeben", vbOKOnly + vbCritical
Exit Sub
End If
If NeuerName = "False" Then
MsgBox "Vorgang abgebrochen", vbOKOnly + vbCritical
Else
ActiveWorkbook.SaveCopyAs Filename:=Application.GetSaveAsFilename(NeuerName, Filter,  _
FilterIndex:=2) ', FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
End If
'Application.DisplayAlerts = True
End Sub

Hat jemand da ein Lösungsvorschlag?
Vielen Dank.
Gruß

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:04:02
Werner
Hallo Thorsten,
If NeuerName = "False" Then
MsgBox "Vorgang abgebrochen", vbOKOnly + vbCritical
Exit Sub
Else
Gruß Werner
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:07:08
Thorsten
Hallo Werner,
das habe ich ja bereits in meinem Code enthalten. Scheint aber keine Auswirkung zu haben. :(
Gruß
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:10:29
Torsten
Nein das Exit Sub an dieser Stelle hattest du nicht in deinem geposteten Code.
Gruss Torsten
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:21:05
Thorsten
Ok, stimmt das Exit Sub fehlte. Habe ich jetzt hinzugefügt, es wird aber immer noch eine FALSE Datei ohne Endung abgespeichert.
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:16:17
Werner
Hallo,
außerdem hat die Variable nicht den Wert "False" sondern ist ""
Public Sub CommandButton20_Click()
Dim NeuerName As String
Dim Pfad As String
Dim Filter As String
'Application.DisplayAlerts = False
NeuerName = ActiveSheet.Range("G19")
Filter = "Excel Files (*.xlsm), *.xlsm"
If NeuerName = "Keine Name" Then
MsgBox "Name in G19 eingeben", vbOKOnly + vbCritical
Exit Sub
End If
If NeuerName = "" Then
MsgBox "Vorgang abgebrochen", vbOKOnly + vbCritical
Else
ActiveWorkbook.SaveCopyAs Filename:=Application.GetSaveAsFilename(NeuerName, Filter, _
FilterIndex:=2) ', FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
End If
'Application.DisplayAlerts = True
End Sub
Gruß Werner
Anzeige
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:28:45
Thorsten
Auch wenn ich NeuerName auf "" ändere wird eine False Datei gespeichert beim Abbrechen.
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 13:00:14
Werner
Hallo Thorsten,
dann ist die Zelle G19 nicht leer.
Hast du da eine Formel drin die u.U. einen Leerstring ausgibt?
Gruß Werner
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 13:12:57
Thorsten
Ja, in G19 ist eine Formel, die auf eine andere Zelle in der Tabelle verweist. Ich vergebe auf einem anderem Sheet nach einer Prüfung mehrerer Faktoren einen Namen. Sind alle Vorgaben eingehalten, so wird eine Name des Vorgangs erzeugt (bestehend aus DatumBezeichnungJahr). Sind nicht alle Vorgaben erfüllt, besteht der Hinweis aus "Keine Name". Das Frage ich ja ab. Der Vorgang wird auch bei nicht bestehenden Vorgaben nicht gespeichert. Nur wenn ich mit dem Button "Abbrechen" den Vorgang abbreche, kommt diese False Datei (Welche keine Endung besitzt).
So sieht es jetzt aus:
Private Sub CommandButton20_Click()
Dim NeuerName As String
Dim Pfad As String
Dim Filter As String
NeuerName = ActiveSheet.Range("G19") 'Name der Exeldatei in Varibel übergeben
Filter = "Excel Files (*.xlsm), *.xlsm"
If NeuerName = "Keine Name" Then 'Prüfung der Variablen auf fehlende Bezeichnung
MsgBox "Bezeichnung fehlt", vbOKOnly + vbCritical
Exit Sub
Else
ActiveWorkbook.SaveCopyAs Filename:=Application.GetSaveAsFilename(NeuerName, Filter,  _
FilterIndex:=2) ', FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
End If
If NeuerName = "False" Then
MsgBox "Vorgang abgebrochen", vbOKOnly + vbCritical
Exit Sub
End If
End Sub

Anzeige
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:10:10
Daniel
Hi
du solltest das GetSaveAs-Filename nicht direkt in die SaveAs-Funktion reinschriben.
erstmal den Speichernamen in einer Variablen sichern, nur dann kannst du prüfen, ob abgebrochen wurde oder nicht:
dim Speichername as string
Speichername = application.getsaveasfilename
If Speichername like "*.xls*" then ActiveWorkbook.savecopyas FileName:=Speichername
Gruß Daniel
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 12:54:39
Thorsten
Mmmh,
das mache ich doch, oder nicht?
Ich schreibe den Neuen Name in die Variable "Neuer Name" Diese überprüfe ich erst auf die Eingabe "Keine Name". Ist kein Name vorhanden, dann kommt auch die gewünschte Meldung.
Nur wenn ich auf abbrechen klicke, dann speichert Excel eine Datei mit der Bezeichnung False (ohne eine Endung) daher frage ich ja auch noch einmal mit (If NeuerName = "False" Then)danach.
Anzeige
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 13:03:59
PeterK
Hallo
In deiner Version liefert
Application.GetSaveAsFilename den Wert FALSE zurück wenn abgebrochen wird.d.h
ActiveWorkbook.SaveCopyAs Filename:=FALSE
und schon hast Du Dein "komische" Datei
AW: SaveCopyAs erzeugt FALSE Datei bei Fehler
29.11.2018 13:11:30
Daniel
nö machst du nicht.
wenn du das GetSaveAs-Filename direkt in SaveCopyAs einsetzt, dann wird die Datei unter dem Namen gespeichert, den dir die GetSaveAsFilename-Funktion zurück gibt.
dein NeuerName ist nur die Startbefüllung für das GetSaveAsFilename, aber für dessen Ergebnis völlig belanglos.
Wenn du Abbrechen drückst, dann gibt dir GetSaveAsFilename denn Boolschen Wert FALSE zurück.
das SaveCopyAs erwartet aber einen Textstring und wandelt das FALSE in den Text "Falsch" und verwendet diesen als Speichername.
Gruß Daniel
Anzeige

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige