VBA Code wird nicht gespeichert
06.08.2020 07:19:17
Sven
bräuchte mal kurz eure Hilfe, ich erstelle per VBA ein neues Workbook und speicher das als .xlsm. Dann mache ich einiges in der Mappe und erstelle einen Befehlsbutton samt VBA Code der in die neue Mappe geschrieben wird, den Code dafür habe ich auch hier aus dem Forum.
Nun zu meinem Problem, mache ich das alles und lasse das Workbook anschließend geöffnet ist alles gut, dann speicher ich manuell und alles ist wie es sein soll.
Speicher ich ich aber am ende meines Codes mit .save und nutze anschließend .close um die erstellte Arbeitsmappe zu schließen speichert er den Code der zu dem Befehlsbutton eingefügt wurde nicht. Wenn ich dann die Datei öffne ist der Befehlsbutton da, aber ohne Code.
Woran kann das leigen?
hiermit erstelle ich die Mappe:
Set wb = Workbooks.Add
wb.Activate
Tabelle_save = UserForm2.ComboBox1.Value & "_" & UserForm2.Part_Nummer.Value & "_" & _
UserForm2.Part_Name.Value & "_" & UserForm2.Werkzeugnummer_Housing.Value & "+" & UserForm2. _
Werkzeugnummer_Lever.Value & "_" & UserForm2.MB_Nummer_System.Value & "_" & Year(UserForm2.Date_of_measurement.Value) & "-" & Monat & "-" & Tag
Tabelle_save = InputBox("Dateiname:", "Datei speichern", Tabelle_save) 'Abfrage Dateinamen
Tabelle_save = Tabelle_save & ".xlsm" 'Tabelle_save = "Name Deiner Wahl.xlsx"
ActiveWorkbook.SaveAs Filename:=Tabelle_save, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
dann kommt wie gesagt alles mögliche, sollte aber hierfür uninteressant sein,
hier der Code für Button und Code, natürlich erstmal nur Test (hier aus dem Forum)
Dim strCode As String
Dim myButton As OLEObject
Dim Zelle2 As Range
Set Zelle2 = Range("H6:H7")
With Zelle2
Set myButton = ActiveSheet.OLEObjects.Add(ClassType:="Forms. _
CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=.Left, Top:=.Top, Width:=. _
Width, Height:=.Height)
End With
strCode = _
"Private Sub " & myButton.Name & "_Click()" & Chr(10) & _
" MsgBox ""test erfolgreich bestanden""" & Chr(10) & _
"End Sub"
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName). _
CodeModule
.InsertLines .CountOfLines + 1, strCode
End With
wie gesagt funktioniert alles einwandfrei, genau wie es soll solange ich die Datei geöffnet lasse, da aber mehr Dateien erzeugt werden wäre das eine nicht zielführende möglichkeit.
Gibt es eventuell noch einen Befehl der den Code nochmal extra abspeichert, abgesehen von der normalen .Save funktion?
Gruß
Sven