Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

VBA neue Arbeitsmappe erzeugen

VBA neue Arbeitsmappe erzeugen
11.07.2014 21:55:10
Uwe
Muss das Thema von Gestern leider noch einmal aufgreifen.
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

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

Betreff
Datum
Anwender
Anzeige
AW: VBA neue Arbeitsmappe erzeugen
11.07.2014 22:18:15
Martin
Hallo Uwe,
mich überrascht die von dir geschilderte Meldung etwas, da bei mir kein Benutzeraktion notwendig ist. Allerdings arbeite ich hauptsächlich in Excel 2003 und habe erst Montag wieder Gelegenheit unter Excel 2010 zu testen. Versuche mal folgenden Code anstelle der "Problemzeile" einzusetzen:
    Application.DisplayAlerts = False
ActiveWorkbook.VBProject.VBComponents.Import (strImportModul)
Application.DisplayAlerts = True
Das ist nur ein Schuss ins Blaue, vielleicht klappt es ja. Viel Erfolg!
Viele Grüße
Martin

Anzeige
AW: VBA neue Arbeitsmappe erzeugen
11.07.2014 22:56:01
Uwe
Hallo Martin,
funktioniert leider nicht
anbei die Fehlermeldung
Userbild
sowie meine aktuelle Datei
https://www.herber.de/bbs/user/91478.xlsm
mit freundlichen Grüßen
Uwe

AW: VBA neue Arbeitsmappe erzeugen
12.07.2014 01:49:21
Martin
Hallo Uwe,
jetzt verstehe ich das Problem. Bei mir unter Excel 2003 tritt diese Meldung nicht auf, weil erst unter Excel 2007 neue Dateiformate eingeführt wurden und Excel die Datei wegen der Makros eigentlich nur als XLSM speichern möchte.
Bitte ersetze die Zeile...
ActiveWorkbook.SaveAs ThisWorkbook.Path & "/" & strFileName
...durch folgende Zeile:
ActiveWorkbook.SaveAs ThisWorkbook.Path & "/" & strFileName, FileFormat:=xlExcel8
Durch das FileFormat:=xlExcel8 sagen wir Excel, dass die Dateien als "alte" XLS-Dateien gespeichert werden sollen. Ich hoffe und denke, dass es nun klappt.
Viele Grüße
Martin

Anzeige
AW: VBA neue Arbeitsmappe erzeugen
12.07.2014 13:06:30
Uwe
Hallo Martin,
Durch die Änderung arbeitet das Makro jetzt tadellos.
vielen vielen Dank
Trotzdem noch eine Frage:
Soll ich die neuen Dateien später unter .XLSM speicher, oder ist das Format belanglos?
mit freundlichen Grüßen
Uwe

AW: VBA neue Arbeitsmappe erzeugen
12.07.2014 13:44:03
Matze
Hallo Uwe,
Martin hat doch geschrieben:
 weil erst unter Excel 2007 neue Dateiformate eingeführt wurden 
das XLSM Format wird erst ab Version 2007 und höher genutzt, wohin gehen die neueren Excelversionen auch das "alte" xls Format erkennen.
Das ist deine Entscheidung ,... es ist nur wenn du unter 2007 und höher Mappen erstellst das mache Funktion oder Befehl nicht sauber unter dem alten Format abgespeichert werden.
Gruß Matze

Anzeige
AW: VBA neue Arbeitsmappe erzeugen
12.07.2014 19:49:35
Uwe
Danke für die Antwort.
bin ja mit der aktuellen Lösung voll zufrieden.
mit freundlichen Grüßen
Uwe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige