Mittels .bat Datei Excel makro an mehreren Datein ausführen
Hallo,
ich erstelle gerade einen ganzen Haufen Protokolle (ca. 1000). Dafür habe ich bereits mehrere Makros geschrieben. Diese befinden sich (mittlerweile) in einer gesammelten Macrodatei (xlsm).
Da ich aber immer wieder Korrekturen an allen * 1000 .xls Dateien vornehmen muss, wäre es sinnvoll eine Möglichkeit zu finden ein Makro zu haben welches ich auf allen .xls Dateien anwenden kann. Das direkt über ein Makro zu realisieren habe ich jetzt auf mehreren Wegen bereits versucht und bin daran gescheitert -> habe vor 3 Wochen noch nicht mal gewusst wie man ein Makro ausführt ;)
Meine Überlegung also:
.bat Datei erstellen welche die Datei Mastermacro.xlsm aufruft
div. Ordner und Unterordner nach .xls Dateien absuchen
eine xls Datei nach der anderen aufmacht, das Makro aus Mastermacro.xlsm ausführt, xls Datei wieder schließen
ist das auf irgend eine Art möglich?! Bereits das ganze Internet abgesucht und nichts verwertbares gefunden...
Ich bin wohl nicht der einzige der 1000 Dateien überarbeiten will und da nicht jede einzeln durchklicken will...
Bonusdanksagungen gibt es, wenn mir einer verrät wie ich dem Mastermacro.xlsm noch sagen kann, dass es die Macros aus den zu bearbeitenden Dateien löschen soll... dafür habe ich nämlich auch keine brauchbare Lösung gefunden. Nur ein paar mal meine Mastermacro.xlsm geschrottet. erstellen einer xlsx Datei ist allerdings keine Lösung!
PS: bei den Kollegen könnte ich total "einedrahn" wenn man die Vorgänge sehen würde ;)
lg und besten Dank für eure Hilfe!
MaxvonWies
ich erstelle gerade einen ganzen Haufen Protokolle (ca. 1000). Dafür habe ich bereits mehrere Makros geschrieben. Diese befinden sich (mittlerweile) in einer gesammelten Macrodatei (xlsm).
Da ich aber immer wieder Korrekturen an allen * 1000 .xls Dateien vornehmen muss, wäre es sinnvoll eine Möglichkeit zu finden ein Makro zu haben welches ich auf allen .xls Dateien anwenden kann. Das direkt über ein Makro zu realisieren habe ich jetzt auf mehreren Wegen bereits versucht und bin daran gescheitert -> habe vor 3 Wochen noch nicht mal gewusst wie man ein Makro ausführt ;)
Meine Überlegung also:
.bat Datei erstellen welche die Datei Mastermacro.xlsm aufruft
div. Ordner und Unterordner nach .xls Dateien absuchen
eine xls Datei nach der anderen aufmacht, das Makro aus Mastermacro.xlsm ausführt, xls Datei wieder schließen
ist das auf irgend eine Art möglich?! Bereits das ganze Internet abgesucht und nichts verwertbares gefunden...
Ich bin wohl nicht der einzige der 1000 Dateien überarbeiten will und da nicht jede einzeln durchklicken will...
Bonusdanksagungen gibt es, wenn mir einer verrät wie ich dem Mastermacro.xlsm noch sagen kann, dass es die Macros aus den zu bearbeitenden Dateien löschen soll... dafür habe ich nämlich auch keine brauchbare Lösung gefunden. Nur ein paar mal meine Mastermacro.xlsm geschrottet. erstellen einer xlsx Datei ist allerdings keine Lösung!
PS: bei den Kollegen könnte ich total "einedrahn" wenn man die Vorgänge sehen würde ;)
lg und besten Dank für eure Hilfe!
MaxvonWies
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 619408
Url: https://administrator.de/contentid/619408
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
10 Kommentare
Neuester Kommentar
Klingt als wäre Excel als dezentrales Tabellenkalkulationsprogramm das falsche Werkzeug dafür.
Macros kann man programmatisch mit Bibliotheken wie https://github.com/EPPlusSoftware/EPPlus oder wenns kommerziell sein soll Aspose.Cells bearbeiten. Da brauchst du dann entweder direkt C# oder wenns geskriptet sein soll PowerShell, nicht die alte CMD.
Macros kann man programmatisch mit Bibliotheken wie https://github.com/EPPlusSoftware/EPPlus oder wenns kommerziell sein soll Aspose.Cells bearbeiten. Da brauchst du dann entweder direkt C# oder wenns geskriptet sein soll PowerShell, nicht die alte CMD.
Hallo
Ist es wirklich nötig, jede Datei zu aktualisieren, oder würde es ausreichen, wenn du die Datei beim Öffnen aktualisierst?
Dann könntest du nämlich das Makro in deinem Excel-Startup Pfad speichern
Dann hast du das Makro in jeder Excel-Datei zur Verfügung.
Um es aufzurufen, kannst du ja zB einen Button im Menupfad hinterlegen
Gruss Urs
Ist es wirklich nötig, jede Datei zu aktualisieren, oder würde es ausreichen, wenn du die Datei beim Öffnen aktualisierst?
Dann könntest du nämlich das Makro in deinem Excel-Startup Pfad speichern
Dann hast du das Makro in jeder Excel-Datei zur Verfügung.
Um es aufzurufen, kannst du ja zB einen Button im Menupfad hinterlegen
Gruss Urs
Solange es nur 1 Unterordner-Ebene gibt, ist das mit FSO recht einfach zu machen.
(Viele AV blockieren CreateObject("WScrip.Shell").excec("cmd dir /s c:\temp\*.xls?").stdout.readall
Für alternative rekursive Aufrufe sollte man mehr als Grundkenntnisse haben)
Siehe Dir "FSO" (FileScriptingObject) an, da gibt es die Methode "SubFolder".
(Viele AV blockieren CreateObject("WScrip.Shell").excec("cmd dir /s c:\temp\*.xls?").stdout.readall
Für alternative rekursive Aufrufe sollte man mehr als Grundkenntnisse haben)
Siehe Dir "FSO" (FileScriptingObject) an, da gibt es die Methode "SubFolder".