References / eine Art Multitask / Makros parallel
24.05.2018 22:40:43
Thomas
habe noch keinen Code zum Hochladen, bin noch auf Ideenfindung und stolper da bei ein paar Sachen, bei denen jemand von Euch vielleicht eine Idee hat:
Problem:
Ich habe in der Arbeit vier große Exceldateien, über die alle das gleichen Makros laufen, welche zum Teil zusätzlich im VBA-Editor, Extras, Verweise/References noch eine vorhandenes DLL mit einschließen.
Die vier Dateien kommen jeden Tag neu.
Jeden Tag muss ich dann in jede Datei meine Makros, oder sagen wir zwei Module, rüberkopieren und dort laufen lassen. Pro Datei kann das bis zu 2.5 Stunden laufen, ist auch nicht zu beschleunigen (Datenbankabfragen, Netzwerk usw...).
Ich will mir diese tägliche Kopierarbeit sparen und will mir deshalb in Excel eine Art Control-Panel basteln, welches entweder
1. die VBA-Module von der Ausgangsdatei, z.B. dem Control-Panel in die einzelnen Dateien rüberkopiert
oder
2. das Makro im Control-Panel auf die einzelnen Dateien anwendet (könnte ich dementsprechend umschreiben)
oder auch
3. Makro/Module als AddIn zur Verfügung stellen und dann in den einzelnen Dateien starten.
Meine Probleme/Fragen:
Bei 2.5 Stunden pro Makro lasse ich das derzeit parallel in verschiedenen Excel-Sessions laufen. Wie ich per Makro neue Sessions erstelle, weiss ich; Ein Makro vom Control-Panel aus wie in Punkt 2 auf diese anwenden ist auch kein Problem, nur....
zu 1.: Wie könnte ich MakroCodes/Module in andere Dateien rüberkopieren? Wie kann ich dann in der neuen Datei auch die nötige Reference auf die DLL via VBA einbinden (wenn ich das wieder manuell machen muss, ist mir nix geholfen) und nebenbei - aber ich glaub, das ist am einfachsten, das Makro dann dort in der neuen Datei aufrufen?
zu 3.: Wie binde ich via VBA Addins ein, und vor allem die Reference auf die DLL? Bzw. wie deaktiviere ich diese? Denn sollte sie auf einem anderen Rechner nicht vorhanden sein, stürzen andere Makros im selben Modul, die diese DLL nicht benötigen ab?
Aber Hauptproblem, auch insbes. zu 2.: Wenn ich vom Control-Panel aus die Makros aufrufe, egal ob via Anwendung auf die anderen Dateien, neuen Sitzungen oder wie auch immer, arbeitet es mir dann so wies aussieht sehr wahrscheinlich die Aufrufe hintereinander ab: erst in der ersten Session, dann in der zweiten... usw, so wie ichs halt der Reihe nach aufrufe. Damit ist mir nichts gedient, das würde dann einen Tag laufen. Laufen 4 Sessions nebeneinander, kann ich in 3 Stunden weiter machen. Nur... wie starte ich das gleiche Makro in vier unabhängigen Sessions von einem Ausgangs-Excel-Workbook, dem Control-Panel aus, so dass sie wie in einer Art Multitasking, Multithreading parallel nebeneinander laufen?
Bisserl komplex, und wie gesagt noch auf Ideenfindung, was überhaupt machbar ist, aber ich hoffe, mein Problem is einigermaßen klar geworden.
Thomas