Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro X auf mehrere Dateien anwenden

Makro X auf mehrere Dateien anwenden
31.10.2016 11:50:06
Fabi
Hallo,
ich bin mir nicht sicher, ob ich mit der Frage hier in diesem Forum richtig bin, aber werde ich ja gleich erfahren xD
Und zwar ist mein Problem, dass ich mehrere ähnliche Excel-Dateien habe, die alle vom selben Makro X bearbeitet werden sollen.
Also es gibt ein Ordner mit Datei1.xls, Datei2.xls, Datei3.xls, usw. und eine Marko X.
Bis jetzt habe ich das Makro X immer mit copy-paste in die Dateien integriert und danach einzeln ausgeführt. Gerne möchte ich aber die Makro X extern auf die Dateien anwenden, dabei habe ich schon an eine Lösung durch C# (also Makro in C# überführen) gedacht und eine kleine GUI, mit der ich die Dateien und die Makro im C#-Code ausführen kann.
Falls mir jemand Lösungsansätze hat oder Verbesserungsvorschläge, dann freue ich mich über jede Antwort. Schon mal Danke im Voraus.
Viele Grüsse,
Fabian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro X auf mehrere Dateien anwenden
31.10.2016 11:55:12
Daniel
Hi
das geht auch einfacher.
1. Schreibe das Makro so, dass es die Datei bearbeitet, welche gerade aktiv ist
2. öffne dann die Datei die bearbeitet werden soll, so dass du zwei geöffnete Dateien hast:
die mit dem Makro und die die bearbeitet werden soll
3. aktiviere die zu bearbeitende Datei und starte das Makro
Gruß Daniel
Anzeige
AW: Makro X auf mehrere Dateien anwenden
31.10.2016 12:07:51
Fabi
Hi Daniel,
ich habe mein makro schon so geschrieben gehabt, doch mit der lösung war ich dann noch nicht zufrieden.
ich suche einen ansatz mit dem ich die makro auf alle geschlossenen dateien von aussen ausführen kann, ohne dass das makro in der datei vorhanden ist, deshalb habe ich schon gedacht dass ich c# dafür benötige bin mir jedoch nicht sicher...
gruß
Anzeige
AW: Makro X auf mehrere Dateien anwenden
31.10.2016 12:22:06
Daniel
Hi
geschlossene Dateien kannst du sowieso nicht bearbeiten.
Aber du kannst ein Makro schreiben, welches die Dateien nacheinander öffnet, den Code ausführt und die Dateien wieder schließt.
Das geht aber auch direkt mit VBA, da brauchst du kein C.
for Each Datei in Array("Dateiname1.xlsx", "Dateiname2.xlsx", "Dateiname3.xlsx")
workbooks.Open "C:\ordner1\...\" & Datei
Call DeinMakro
ActiveWorkbook.Save
ActiveWorkbook.Close
Next

nach dem Öffnen einer Datei ist diese immer das ActiveWorkbook.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro X auf mehrere Excel-Dateien anwenden


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Schreibe ein Makro, das die aktive Datei bearbeitet. Hierbei ist es wichtig, dass das Makro universell für alle Dateien funktioniert.

  2. Dateien vorbereiten: Stelle sicher, dass alle Dateien, die bearbeitet werden sollen, im selben Ordner liegen.

  3. VBA-Editor öffnen: Gehe zu den Excel Entwicklertools und öffne den VBA-Editor (Alt + F11).

  4. Makro zum Öffnen von Dateien schreiben: Nutze den folgenden VBA-Code, um das Makro auf mehrere geschlossene Excel-Dateien anzuwenden:

    Sub MakroXAufAlleDateien()
        Dim Datei As Variant
        For Each Datei In Array("Dateiname1.xlsx", "Dateiname2.xlsx", "Dateiname3.xlsx")
            Workbooks.Open "C:\pfad\zum\ordner\" & Datei
            Call DeinMakro ' Hier wird dein Makro aufgerufen
            ActiveWorkbook.Save
            ActiveWorkbook.Close
        Next
    End Sub
  5. Makro ausführen: Starte das Makro, und es wird automatisch auf alle angegebenen Dateien angewendet.


Häufige Fehler und Lösungen

  • Fehler: Makro nicht gefunden
    Lösung: Stelle sicher, dass der Name des Makros korrekt ist und dass es im gleichen Modul wie das aufrufende Makro gespeichert ist.

  • Fehler: Dateien lassen sich nicht öffnen
    Lösung: Überprüfe den Dateipfad und stelle sicher, dass die Dateien existieren und nicht geöffnet sind.


Alternative Methoden

Eine alternative Methode, um ein Excel Makro für alle Dateien verfügbar zu machen, ist die Verwendung eines Add-Ins. Damit kannst du dein Makro in einer separaten Datei speichern und es dann in Excel laden. Gehe dazu folgendermaßen vor:

  1. Erstelle eine neue Excel-Datei und füge dein Makro hinzu.
  2. Speichere die Datei als Excel-Add-In (.xlam).
  3. Lade das Add-In über die Excel-Optionen unter „Add-Ins“.
  4. Dein Makro ist jetzt verfügbar, um es auf verschiedene Dateien anzuwenden.

Praktische Beispiele

Ein praktisches Beispiel für die Anwendung eines Makros auf mehrere Dateien könnte folgendermaßen aussehen:

  • Angenommen, du hast eine Liste von Verkaufszahlen in mehreren Excel-Dateien, die du konsolidieren möchtest. Du erstellst ein Makro, das die Verkaufszahlen jeder Datei summiert und in eine separate Datei schreibt.
Sub VerkaufszahlenKonsolidieren()
    Dim ws As Worksheet
    Dim Summe As Double
    Dim Datei As Variant
    For Each Datei In Array("Verkauf1.xlsx", "Verkauf2.xlsx", "Verkauf3.xlsx")
        Workbooks.Open "C:\pfad\zu\deinen\dateien\" & Datei
        Set ws = ActiveSheet
        Summe = Summe + Application.WorksheetFunction.Sum(ws.Range("A1:A10")) ' Beispielbereich
        ActiveWorkbook.Close
    Next
    MsgBox "Die Gesamtsumme beträgt: " & Summe
End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in dein Makro ein, um unerwartete Probleme während der Ausführung zu vermeiden.

  • Teste in einer sicheren Umgebung: Führe dein Makro zuerst in einer Testumgebung aus, bevor du es auf wichtige Dateien anwendest.

  • Dokumentiere dein Makro: Füge Kommentare in deinen VBA-Code ein, um dir und anderen zu helfen, den Code zu verstehen.


FAQ: Häufige Fragen

1. Kann ich das Makro auch auf Dateien anwenden, die passwortgeschützt sind?
Ja, du kannst dein Makro so anpassen, dass es das Passwort beim Öffnen der Datei übergibt.

2. Wie kann ich das Makro für alle Dateien in einem Ordner anwenden?
Du kannst die Dir-Funktion in VBA verwenden, um alle Dateien in einem bestimmten Ordner zu durchsuchen und sie in deinem Makro anzuwenden.

Dim Datei As String
Datei = Dir("C:\pfad\zum\ordner\*.xlsx")
Do While Datei <> ""
    Workbooks.Open "C:\pfad\zum\ordner\" & Datei
    Call DeinMakro
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    Datei = Dir
Loop

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige