Martin hat mir ein Makro entwickelt, welches Register aus der aktuellen Arbeitsmappe zu neuen Arbeitsmappen generiert.
Funktioniert einwandfrei.
Nachdem ich aber auch noch ein bestimmtes Makro in die neue Arbeitsmappe kopieren will geht es bei mir nicht weiter.
Habe das Modul5 vorher per Hand in das gleiche Verzeichnis exportiert
In der Zeile mit
ActiveWorkbook.VBProject.VBComponents.Import (strImportModul)
verlangt Excel nach einen neu einzugebenden Namen einschl Datentyp mit Makro.
Ich möchte aber keinen neuen Namen eingeben, sondern die neue Tabelle soll wie das Register aus der Ursprungstabelle heißen.
Ohne die Zeile ActiveWorkbook.VBProject.VBComponents.Import (strImportModul)
werden die neuen Tabellen erzeugt, aber ohne Modul5
Hier das Makro:
Sub WorkbookExport()
Dim i As Integer
Dim wbkOpen As Workbook
Dim strFileName As String
Dim strImportModul As String
'Dateipfad für Makromodul anpassen
strImportModul = "C:\Users\User\Desktop\2014-07-11 Test01\Modul5.bas"
With ThisWorkbook
For i = 6 To 126
If .Worksheets(2).Cells(i, 3) = "x" Then
'Dateiname von Tabellenblatt
strFileName = .Worksheets(i - 3).Name & ".xls"
'Dateien mit dem Namen schließen
For Each wbkOpen In Workbooks
If wbkOpen.Name = strFileName Then
wbkOpen.Close SaveChanges:=False
Exit For
End If
Next
'Tabelle kopieren
.Worksheets(i - 3).Copy
ActiveWorkbook.VBProject.VBComponents.Import (strImportModul)
'Formeln durch Werte ersetzen
With ActiveSheet.UsedRange
.Cells = .Cells.Value
End With
'neue Arbeitsmappe speichern
On Error Resume Next
ActiveWorkbook.SaveAs ThisWorkbook.Path & "/" & strFileName
On Error GoTo 0
'falls neue Datei geschlossen werden soll
'ActiveWorkbook.Close
End If
Next i
End With
End Sub
Ich vermute der Befehl greift nicht auf die aktuelle Arbeitsmappe zu.
Vielleicht kann mir Martin oder ein anderer Profi das Problem beheben.
mit freundlichen Grüßen
Uwe