Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

References / eine Art Multitask / Makros parallel

References / eine Art Multitask / Makros parallel
24.05.2018 22:40:43
Thomas
Servus zusammen
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: References / eine Art Multitask / Makros parallel
24.05.2018 23:22:27
Daniel
Hi
zu 1)
wäre es u.U. nicht einfacher, du erstellst eine Vorlagendatei, die schon alle Verweise, Module usw enthält und in die du die Daten hinein kopierst?
zu 2)
mit einem Zentralen Makro wirds nicht funktionieren, denn das arbeitet sequentiell alles nacheinander ab.
aber vielleicht funktioniert ja folgender Workaround:
- schreibe das Makro für die Bearbeitung der 4 Exceldateien in eine Vorlagendatei, die du im Autostartordner ablegst. Im WorkbookOpen-Event müsstest du dann das Berarbeitungsmakro starten, am besten mit Application.Ontime, damit erst die Datei vollständig geöffnet wird, bevor dein Monstermakro startet.
Wenn du dann eine neue Excelsession startest, wird die Datei im Autostartordner geöffnet und das Bearbeitungsmakro gestartet. Damit läuft das Bearbeitungsmakro in der eigenen Session.
Dein ZentralMakro muss nur die Excelsessions aufrufen, der rest läuft dann automatisch.
-damit nicht jede Session die gleiche Datei bearbeitet, könntest du so vorgehen:
das Zentralmakro legt eine kleine Exceldatei an und speichert diese an einem Definierten Ort.
die Datei ist zunächst leer.
dein Makro im Autostartordner sollte dann folgendes tun:
1. Prüfen ob datei vorhanden, wenn nein, nichts machen
2. Wenn die Datei vorhanden ist, dann muss es sie öffnen und prüfen, welche der Zellen A1:A4 leer sind.
Wenn A1 leer ist, etwas in A1 eintragen, Datei wieder speichern und schließen, danach die erste der 4 Dateien bearbeiten.
Wenn A2 leer ist, etwas in A2 eintragen, die Datei wieder speichern und schließen und danach die zweite der 4 Dateien berbeiten
usw. für alle zu bearbeitenden Dateien.
somit hast du protokollliert, welche der Dateien schon bearbeitet wird und beim öffnen der nächsten Session wird nicht wieder die gleiche Datei bearbeitet, sondern die nächste.
damit sich die Makros nicht in die Quere kommen, solltest du die Sessions mit etwas Zeitlichem Abstand starten, damit die Protokolldatei wieder vollständig gespeichert und geschlossen werden kann, bevor die nächste kommt.
Addins würde ich vermeiden und allen benötigten Code in der Datei selbst ablegen.
Dann hast du keine Probleme, wenn die Datei mal auf einem anderen Rechner laufen soll.
Gruß Daniel
Anzeige
AW: References / eine Art Multitask / Makros parallel
25.05.2018 08:55:49
Thomas
Danke
das entspricht nicht 100% dem, was ich mir überlegt hab, aber das klingt gut. Vorlage klappt nicht ganz im direktem Modus, da die Daten in den Dateien etwas unterschiedlich sind, aber denke, das kann ich ihm Makro abfangen.
Is n guter Ansatz, danke Dir! Denke, so könnt ich hinkommen, ... was auch heisst, mir grauts vor der auf mich zukommenden Arbeit :)
Schönes Wochenende!
Thomas
AW: References / eine Art Multitask / Makros parallel
25.05.2018 20:50:18
Thomas
Nachtrag:
Mit Deinem Ansatz reift bei mir die Idee schon weit, starten konnte ich heut in der Arbeit leider nicht damit.
Aber eins kam mir noch... Die Sicherheitseinstellungen sind bei uns so, daß bei neuen Workbooks mit Makros immer abgefragt wird, ob das Ding vertrauenswürdig ist und ob man die Makros aktivieren will.
Hab zwar im Geiste da auch schon einen Workaround, aber weisst Du da noch was, wie ich diese Abfrage in meinem Fall, wenn ichs wie Du beschrieben hast mit Vorlage mach, umgehen kann?
Wenn ich den Namen der Vorlage nicht ändere, sollts gehn (drum werd ich zur Not mehrere gleiche Vorlagen erstellen und die erste unbenutzte verwenden), aber wenn ichs mit neuem Namen speicher, erwarte ich eine Rückfrage. Dann muss ich wieder agieren, was ich ja vermeiden wollte...
Thomas
Anzeige
AW: References / eine Art Multitask / Makros parallel
25.05.2018 22:50:12
Daniel
Es ist Sinn und Zweck einer Vorlage, dass sie im Normalbetrieb nicht verändert wird, dh die ausgefüllte Vorlage wird immer unter einem anderen Namen gespeichert.
Deswegen wird eine Vorlage auch immer schreibgeschützt geöffnet und kann si von mehreren Dateien gleichzeitig verwendet werden. Auch ändert sich ihr Name nicht.
Dh dir sollte eine Vorlage für alle vier Varianten ausreichen, Dateiname oder Pfad kannst du ha im Trustcenter hinterlegen.
Gruß Daniel
AW: References / eine Art Multitask / Makros parallel
28.05.2018 12:01:30
Thomas
... wie ich befürchtet hab,
jedes Öffnen des Workbooks frägt mich vorab, ob ich Makros aktivieren mag.
Sicherheitseinstellungen bei uns in der Firma sind so hoch, dass ich die Speicherpfade nicht selbst ändern darf. Muss ich wohl mal mit unserer IT reden, obs da ne Ausnahme gibt. Allein mir fehlt der Glaube.
Dennoch Danke für die Hilfe!
thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige