Microsoft Excel

Herbers Excel/VBA-Archiv

Mit Makro Datei öffnen und ein Makro ausführen

Betrifft: Mit Makro Datei öffnen und ein Makro ausführen von: Golem
Geschrieben am: 18.11.2014 21:35:45

Hallo Excel-Fachleute,

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

  

Betrifft: AW: Mit Makro Datei öffnen und ein Makro ausführen von: Rudi Maintaire
Geschrieben am: 19.11.2014 13:28:00

Hallo,
in welcher Mappe steht denn MWMultiDateiUpdate?

Wenn das aufzurufende Makro nicht in einem Standardmodul steht, musst du den Codenamen der Tabelle angeben
Application.Run ("'Whn 1.xlsm'!Tabelle1.Test")

Gruß
Rudi



  

Betrifft: AW: Mit Makro Datei öffnen und ein Makro ausführen von: Golem
Geschrieben am: 19.11.2014 15:26:40

Hallo Rudi,

so wie Du es angegeben hast, funktioniert der Aufruf einwandfrei.
Ich habe das Makro nicht im Standardmodul eingebaut.

Ich hatte keine weitere Lösung mehr erkannt.

Einen schönen Dank für Deine Hilfe und noch einen schönen Tag.
Werner


 

Beiträge aus den Excel-Beispielen zum Thema "Mit Makro Datei öffnen und ein Makro ausführen"