Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
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
Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 09:22:05
Zettelewald
Moin Zusammen!
Ich habe eine Frage bezüglich Excel VBA und muss dazusagen, dass ich mich erst seit kurzer Zeit intensiver mit VBA beschäftige. Ich habe schon viele Fragestellungen mit Hilfe dieses Forums beantworten können, weil ich dafür anscheinend auch immer die richtigen Schlagwörter gefunden habe. Leider bin ich nun auf ein "Problem" gestoßen, wo ich tatsächlich kaum eine Idee habe, wie das vernünftig googlen könnte. Deswegen hoffe ich auf eure Expertise.
Ich versuche das Problem so gut es geht zu schildern, da ich den Code leider nicht posten kann.
Ich habe eine Arbeitsmappe, in der mehrere Arbeitsblätter vorhanden sind, in denen zahlreiche Daten untergebracht sind. In dem bestehenden Excel-Tool (VBA-Code als Add-In), kann nun über eine Userform ausgewählt werden, welche Daten von einem Arbeitsblatt exportiert werden sollen. Bsp: Es gibt Tabellenblatt 1, 2 und 3. Wenn Tabellenblatt 1 angezeigt wird und man das Tool startet, können entweder alle Daten oder vereinzelte Daten des Tabellenblatts 1 exportiert werden. So weit so gut. Die Daten werden letztendlich im Hintergrund in eine Word-Vorlage übergeben. Falls Word nicht bereits geöffnet ist, bekommt man davon aber nichts mit.
Wählt man nun den gesamten Export oder mehrere einzelne Daten zum Export aus (also mehrere Datenspalten und NICHT nur eine Datenspalte), so wird im Hintergrund innerhalb des Tools eine große Exportschleife durchlaufen. Da es sich um eine Menge Daten handelt, dauert der Prozess unter Umständen etwas länger und hierfür gibt es eine Fortschrittsanzeige. Nun zu meiner Frage:
Wenn ich Excel dann minimiere - über Windows+D - funktioniert der erste Teilexport ohne Probleme. Ist dieser Teilexport aber beendet und der zweite Teilexport (weitere Spalte) soll starten, blinkt Excel orange auf und der Export wird erst weitergeführt, wenn ich Excel öffne. Kann man das irgendwie unterbinden? Und wenn ja, wie? Weil im Idealfall sollte es so sein, dass der Export im Hintergrund weiterläuft und man nebenbei anderen Tätigkeiten nachgehen kann, ohne dass nach jedem Teilexport Excel wieder geöffnet werden muss.
Es handelt sich dabei um Microsoft 365 Business.
Ich würde mich sehr über eure Ideen freuen, da ich aktuell leider ziemlich ratlos bin.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 09:34:09
onur
Du musst Zeile 17 des Codes ändern.
Ich hab zwar noch eine andere Idee, aber die kann ich leider nicht posten.
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 09:38:48
Oberschlumpf
Hi,
...da ich den Code leider nicht posten kann.
Du musst allein nur den Code auch gar nicht posten.
Viel hilfreicher (auch für dich) wäre es, wenn du uns per Upload eine Excel-Bsp-Datei mit genügend Bsp-Daten und deinem bisherigen Code zeigst.
Denn dann sparen wir uns ganz viel FrageAntwortPingPong - glaub mir, ohne Datei kommt das sehr oft vor
Ciao
Thorsten
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 09:45:15
Yal
Moin,
was Onur meint, ist dass ohne Datei eine Beratung nur schwer machbar ist.
Ich gehe davon aus, dass zwischen Verarbeitung 1 und 2 die Userform wieder angezeigt wird und eine User-Interaktion verlangt wird.
Dass der Export so lang dauert liegt vielleicht an einem Code, dass optimiert werden kann.
Auch einige "Tricks" können helfen: lokal auf C: exportieren, dann die Datei als ganzes auf dem langsamen Netzlaufwerk verchieben.
Aber Datei her: wenn Du ein Problem mit deinem Auto hast, gehst Du auch nicht ohne Auto in die Werkstatt...
VG
Yal
Anzeige
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 10:05:17
Zettelewald
Danke Thorsten und Yal,
dann muss ich wohl erstmal abwarten und schauen, ob mir noch etwas einfällt. Ich kann den Code aktuell nicht so kürzen und verfremden, dass ich eine Datei zur Verfügung stellen kann. Der Code ist ziemlich groß (insgesamt größer 3000 Zeilen) und umfangreich und ich wüsste aktuell nicht, wie ich das zusammenkürzen soll ohne Auflagen zu verletzten.
Werde den Punkt bezüglich der Userform nochmal weiter vertiefen, irgendwo dort muss auf jeden Fall eine Lösung schlummern.
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 10:56:21
snb
Du hast die Lösung schon erwähnt: '(insgesamt größer 3000 Zeilen) '
Reduziere deinen Code bis ungefähr 80 Zeilen.
Hilfe:
- verzichte auf 'Select' und 'Activate'
- verzichte auf verbundene Zellen
- verwende Arrays in Excel
- verwende DocVariables in Word
Danach reden wir weiter......
PS. Ohne Beispieldatei und ohne deinen VBA -Code wird deine Frage scheitern
Anzeige
AW: Exc-VBA-Tool im Hintergrund ausführbar?
27.09.2022 15:14:05
Daniel
Hi
kommt darauf an.
machst du an dieser Stelle irgendetwas, was ein geöffnetes Excel erfordert, oder erwartest gar eine Anwendereingabe?
oder führst du eine Aktion aus, bei der Excel automatisch eine Rückfrage beim Anwender macht? (z.B. beim Löschen von Tabellenblättern)?
Gruß Daniel
AW: Exc-VBA-Tool im Hintergrund ausführbar?
28.09.2022 14:58:39
Zettelewald
Hi Daniel,
ich vermute, dass es daran liegt, dass ich die Export-Schleife über eine UserForm aufrufe (hat mit einer Fortschrittsbalken-Anzeige zu tun). Ich werde nächste Woche mal einen veränderten Teilabschnitt hier reinposten. Ganz grob läuft es so ab:
1. Start Exportschleife
2. Aufruf UserForm für Fortschrittsanzeige (Zeitgleich über die UserForm Aufruf des ExportModuls 3.)
3. ExportModul wird gestartet, während des Durchlaufens wird im Hintergrund Word aufgerufen und es werden Werte usw. in DocProperties eingetragen
4. Schließen des Word-Dokuments und Unload der UserForm
5. Hochzählen des Export-Zählers und dadurch springen zum Schritt 1 für neuen Export (für diesen neuen Export wird auch ein anderes Word-Dokument erzeugt).
Ich vermute jetzt mal, dass durch das Schließen von Word, den Unload-Befehl am Ende der Exportschleife und den erneuten Aufruf der UserForm bei weiteren Exporten dieses Blinken verursacht.
Anzeige
Wozu?
28.09.2022 16:18:11
Yal
Hallo,
wenn Du das Fenster eh minimierst, wozu die Fortschrittanzeige?
Du könntest beim Auruf der Exportschleife ein Auswahl, ob Fortschrittanzeige gewünscht ist oder nicht. Bei nein, kein Umweg über den Userform.
VG
Yal
AW: Wozu?
29.09.2022 08:20:50
Zettelewald
Moin Yal,
ja das habe ich auch schon überlegt. Ich habe das Tool quasi von einem Kollegen geerbt, was auch einiger Abstimmung bedarf. Im Optimalfall ergänze ich nur einige Punkte und nehme keine größeren Veränderungen vor. Allerdings würde ich auch behaupten, dass die Laufzeit damit deutlich optimiert werden könnte. Der Fortschrittsbalken ist halt hilfreich, wenn größere Datenmengen exportiert werden und man sozusagen zwischendurch mal schauen könnte, wo genau der Export aktuell steht ...bspw. 50 Prozent - aha gleiche Zeit ca. nochmal bis zum Exportende.
Bin mal gespannt :D
Aber danke auf jeden Fall für die hilfreichen Antworten
Anzeige
Vielen Dank für die Rückmeldung owT
30.09.2022 09:12:28
Yal
AW: Exc-VBA-Tool im Hintergrund ausführbar?
02.10.2022 12:06:53
Zettelewald
So ich habe das Problem durch 1-2 Kniffe gelöst. Auch ohne Code wollte ich wenigstens die Info nicht unterschlagen, falls es jemanden gibt, der ein ähnliches Problem hat.
Bei mir konnte ich hauptsächlich durch die zusätzliche Info "vbModeless" beim Aufruf der entsprechenden UserForm erzielen, dass ich Excel mit Windows+D minimieren kann, das Tool im Hintergrund seine Arbeit erledigt und das orangene Blinken von Excel und der erforderliche Auruf von Excel unterbinden.
Also: "Export.Show vbModeless" hat den gewünschten Effekt.
Wenn dieser Befehl noch in eine If-Abfrage verstrickt wird, dann kann entschieden werden, ob der Fortschrittsbalken interessant ist oder lieber Excel minimiert werden soll.
Anzeige

66 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige