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 DankLG Gerald