ich habe vom Marc Wershoven ein Makro, mit dem Änderungen in mehreren Dateien automatisch
vorgenommen werden können.
Option Explicit
' ************************************************************************************************
' Autor und Copyright: Marc Wershoven - IT / EDV Dienstleistungen und Beratung
' Homepage: http://www.wershovenonline.de - E-Mail: info@wershovenonline.de
' ------------------------------------------------------------------------------------------------
' Wichtige Hinweise:
' - Verwendung der Quelltexte auf eigene Gefahr!
' - Bitte beachten Sie die Nutzungsbedingungen von www.online-vba.de!
' - Dieser Hinweis inkl. Autorennennung darf nicht entfernt werden!
' - Jede Weiterübermittlung, Veröffentlichung oder Verbreitung ist untersagt!
' - Eine kommerzielle/gewerbliche Verwendung ist nicht gestattet!
' ************************************************************************************************
' Diese Hinweise beziehen sich auf den Quelltext, wie dieser unter dem folgenden Link, unverändert
' als Original zu sehen ist und gelten nicht für Veränderungen durch Nutzer bzw. Dritte:
' www.online-vba.de/vba_multidateiupdate.php
' ************************************************************************************************
' ACHTUNG: ALLE DATEIEN IN DEM ANGEGEBENEN PFAD WERDEN UNWIEDERRUFLICH GEÄNDERT!
' DENKEN SIE IMMER AN EINE AUSREICHENDE DATENSICHERUNG!!!
Sub MWMultiDateiUpdate()
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
'Schritt 1: Schleife über alle Excel Dateien in einem Verzeichnis
sPfad = "C:\Dokumente und Einstellungen\Werner\Desktop\Zahlungen ET_2013\Umsatz ET\"
sDatei = Dir(CStr(sPfad & "*.xl*")) 'Alle Excel Dateien
Do While sDatei ""
'Schritt 2: öffnen der Datei und Datenübertragung
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, False) 'nur lesend öffnen
'Änderungen durchführen, als Beispiel Zelle A1 mit "Hallo" befüllen
oSourceBook.Sheets(1).Cells(1, 1).Value = "Hallo"
'Schritt 3: Datei speichern und wieder zu machen und nächste Schleifenrunde
Application.DisplayAlerts = False
oSourceBook.Close True 'speichern
Application.DisplayAlerts = True
'Nächste Datei
sDatei = Dir()
Loop
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
'Variablen aufräumen
Set oSourceBook = Nothing
End Sub
Damit öffne ich automatisch aus einem geschlossenen Verzeichnis nacheinander 48 Dateien,um in die Zelle A1 das Wort "Hallo" einzutragen.
Funktioniert auch einwandfrei.
Jetzt möchte ich aber nach jedem Öffnen der einzelnen Dateien ein bestimmtes Makro ausführen ( also nicht das
Eintragen von "Hallo" in Zelle A1 ).
Diese Zeile
oSourceBook.Sheets(1).Cells(1, 1).Value = "Hallo"
habe ich durch folgende Zeile ersetzt.
Application.Run ("Whn 1.xlsm!Test")
Das Makro zeigt nach dem Start den Laufzeitfehler 1004 an.
Auch nach dem Setzen von Hochkommatas
Application.Run ("'Whn 1.xlsm'!Test")
wird der Laufzeitfehler angezeigt.
Das Makro ist in der Tabelle1(Whn 1) vorhanden.
Wie kann das Makro "Test" ausgeführt werden?
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Werner