Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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
Inhaltsverzeichnis

Save as Fehler wenn Speichername anders

Save as Fehler wenn Speichername anders
13.09.2022 08:34:34
Gerald
Guten Morgen Spezialisten :-)
Ich kann mich gerade mal so mit VBA-Formularen über Wasser halten. Herbers Forum ist zu 99% mein Basiswissen. Aber jetzt hilft mir auch die Suche nicht mehr.
Ich habe ein Problem, bei dem ich die Kopie eines Sheets erstelle und dieses mit einem über VBA aus Zellen gelesenen Namen versehe und diesen in einem vorgegeben Pfad speichere.
Das funktioniert super - aber.... Wenn der Dateiname, der vorgegeben wird, geändert wird, merkt Excel das nicht mehr, da das ja im Datei-Explorer passiert. Im anschließenden Befehl "Workbooks(strDateiname).Close" findet VBA dann die Datei nicht mehr und stürzt ab. Kann man die Änderung im Datei-Explorer an die Variable zurückschreiben, damit VBA erkennt, dass die Datei unter einem anderen Namen gespeichert wurde?
Ich hoffe das ist verständlich geschrieben...
Das wäre der Code dafür:
' Bei Speichern wird nur eine Kopie der Tabelle Grunddaten als .xlsx mit dem
' Format "EinstiegsGrund_Vorname_Nachname" in einem vorgegebenen Pfad (auf Tabelle Grundwerte B14) gespeichert

Private Sub SpeichernBUT_Click()
Sheets("Grunddaten").Activate
Call DatenAktualisieren
'           Dialogfeld "Speichern unter" aufrufen und dabei den Dateipfad und den Dateinamen vorgeben
strVorname = Vorname_TB
strNachname = Nachname_TB
Speicherpfad = Sheets("Grundwerte").Range("B14").Value 'in Zelle B14 steht Pfad Zb. \\Grunddaten\Pfad\Speicherdaten\
SpeicherName = Speicherpfad & "EinstiegsGrund_" & strVorname & "_" & strNachname
ActiveSheet.Copy
'           Commandbutton aus Kopie entfernen
Call ButtonDelete
'           Berechnung Formel entfernen und nur Werte eintragen
Range("A16:D22").Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.Dialogs(xlDialogSaveAs).Show (SpeicherName) & ".xlsx"
Range("A20").Select
strDateiname = "EinstiegsGrund_" & strVorname & "_" & strNachname & ".xlsx"
Workbooks(strDateiname).Close
Sheets("Grunddaten").Activate
Range("A20").Select
Call FormLeeren
'           Formular schließen
Unload Grundrechner_ATT_Technik
End Sub
Vielen Dank
LG Gerald

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Save as Fehler wenn Speichername anders
13.09.2022 09:03:10
Peter
Merke dir statt Name doch activeworkbook.index.
Jetzt so vom Phone aus...
AW: Save as Fehler wenn Speichername anders
13.09.2022 09:18:28
Gerald
Hallo Peter,
danke für deine Antwort - aber leider beschränkt sich mein VBA aus Kenntnissen anderer Lösungen, die ich versuche zu verstehen und dann umbaue. Da ich kein Beispiel habe, kann ich es auch nicht umbauen und verstehe daher nicht was du meinst.
Auch im Forum kann ich keine ähnliche Lösung finden.....
lg
Gerald
AW: Save as Fehler wenn Speichername anders
13.09.2022 09:45:31
Beverly
Hi Gerald,
nach dem Kopieren ist die Mappe doch die aktive - versuche es also mit ActiveWorkbook.Close anstelle von Workbooks(strDateiname).Close.
Bis später
Karin

Anzeige
AW: Save as Fehler wenn Speichername anders
13.09.2022 11:24:55
Gerald
Hallo Karin,
ich muss zugeben, dass ich wirklich dämlich bin :-) Auf die Idee hätte ich selbst kommen können.
Super - funktioniert, vielen Dank.
lg
Gerald
AW: Save as Fehler wenn Speichername anders
13.09.2022 10:05:33
Yal
Hallo Gerald,
Lösung wie Beverly, aber mit der Verwendung einer Variable.
"ActiveWorkbook" kann sehr "wechselhaft" sein. Wichtig ist, dass die Variable genau in der richigen Situation gesetzt wird, nämlich nach der Erzeugung der Kopie.

Private Sub SpeichernBUT_Click()
Dim AktWb As Workbook
Sheets("Grunddaten").Activate
Call DatenAktualisieren
'Dialogfeld "Speichern unter" aufrufen und dabei den Dateipfad und den Dateinamen vorgeben
strVorname = Vorname_TB
strNachname = Nachname_TB
Speicherpfad = Sheets("Grundwerte").Range("B14").Value 'in Zelle B14 steht Pfad Zb. \\Grunddaten\Pfad\Speicherdaten\
SpeicherName = Speicherpfad & "EinstiegsGrund_" & strVorname & "_" & strNachname
ActiveSheet.Copy
Set AktWb = ActiveWorkbook 'weil jetzt die Kopie aktiv ist
'Commandbutton aus Kopie entfernen
Call ButtonDelete
'Berechnung Formel entfernen und nur Werte eintragen
Range("A16:D22") = Range("A16:D22").Value
Application.Dialogs(xlDialogSaveAs).Show SpeicherName & ".xlsx"
AktWb.Close
Sheets("Grunddaten").Activate
Range("A20").Select
Call FormLeeren
'Formular schließen
Unload Grundrechner_ATT_Technik
End Sub
VG
Yal
Anzeige
AW: Save as Fehler wenn Speichername anders
13.09.2022 11:28:11
Gerald
Danke Yal - Karin hatte die gleiche Idee :-) Nur ich nicht ....:-(
Es funktioniert - vielen Dank
lg
Gerald

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige