ich habe eine Sub erstellt, die ein Eingabeformular in eine neue XLSM-Datei speichert.
Außerdem wird über denselben Command-Button dieses Eingabeformular im PDF-Format gespeichert
und es wird eine Schnittstellen-Text-Datei mit einem SQL-String für den Import ins ERP geschrieben.
Da der Befehl "ActiveWorkbook.SaveAs" die Module und Formulare nicht mitzuspeichern scheint, habe ich diese exportiert
und importiere sie in die neue XLSM.
Soweit klappt das.
Problem: Wenn ich die neu erstellte Arbeitsanweisung öffne und den Command-Button anklicke, öffnet Excen das
ursprüngliche Eingabeformular.xlsm und führt den Code aus diesem aus. Dann klappt natürlich die Abfrage auf den
ActiveWorkbook.Name nicht.
Wie kann ich die Makro-Zuweisung des Command-Buttons auf die aktuell geöffnete Excel-Datei festlegen?
Danke schon mal für einen Lösungsvorschlag,
Gruß
Engelbert
Sub SaveAsEXCEL()
On Error GoTo fehlermeldung
Dim wb As Workbook
Dim wbZiel As Workbook
Dim wsZiel As Worksheet
Dim ws As Worksheet
Set ws = ActiveSheet
Dim dateiname As String
' Nachricht: Die bereits existierende Datei überschreiben bzw. alle Meldungen ausschalten
'Application.DisplayAlerts = False
If ActiveWorkbook.Name = "AAEX_Eingabeformular.xlsm" Then
dateiname = "H:\Arbeitsanleitungen\Extruder\EXCEL\" & ws.Range("aa2").Value & ".XLSM"
Worksheets(ws.Name).Copy
ActiveWorkbook.SaveAs dateiname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
'VB-Modul importieren
Set wbZiel = Workbooks.Open(dateiname)
Set wsZiel = Tabelle1
Debug.Print wsZiel.Name
With wbZiel.VBProject
.VBComponents.Import "H:\Arbeitsanleitungen\Module\Modul1.bas"
End With
wbZiel.Save
wbZiel.Close
End If
If ActiveWorkbook.Name = "AAVS_Eingabeformular.xlsm" Then
dateiname = "H:\Arbeitsanleitungen\Verseilmaschinen\EXCEL\" & ws.Range("aa2").Value & ".XLSM"
Worksheets(ws.Name).Copy
ActiveWorkbook.SaveAs dateiname, FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWorkbook.Close
'VB-Modul importieren
Set wbZiel = Workbooks.Open(dateiname)
Set wsZiel = Tabelle1
Debug.Print wsZiel.Name
With wbZiel.VBProject
.VBComponents.Import "H:\Arbeitsanleitungen\Module\Modul1.bas"
End With
wbZiel.Save
wbZiel.Close
End If
If ActiveWorkbook.Name > "AAEX_Eingabeformular.xlsm" And ActiveWorkbook.Name > "AAVS_Eingabeformular.xlsm" Then
Debug.Print ActiveWorkbook.Name
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
' Nachrichten wieder einschalten
'Application.DisplayAlerts = True
Exit Sub
fehlermeldung:
MsgBox "Im Modul SaveAsEXCEL ist ein Fehler aufgetreten!"
Debug.Print Err.Description
End Sub