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

Appl.Screenupdating:false - wie bei Arbeitsmappenwechsel??

Forumthread: Appl.Screenupdating:false - wie bei Arbeitsmappenwechsel??

Appl.Screenupdating:false - wie bei Arbeitsmappenwechsel??
07.08.2024 23:41:09
Frank Dreier
Hallo Leute,

habe 2 Exceldateien offen. Datei 1 soll immer in Vordergrund sein und Datei 2 immer im Hintergrund.
Wenn ich nun allerdings mit dem makrocode:

Application.EnableEvents = False

Application.ScreenUpdating = False

Windows("Datei2").Activate
Sheets("Übersicht").Select


Zur Tabelle "Übersicht" wechseln muss um hier operationen durchzuführen via Makro, dann blendet er mir nun doch Datei 2 ein, -wahrsch. wg. dem .Activate.
Wenn ich Windows("Datei2").Activate weglasse findet er das Sheet "Übersicht" nicht mehr, da es dies nur in Datei 2 gibt...

Gibt es noch einen anderen Weg Excel mitzuteilen, dass es bitte "Datei2" und Tabelle "Übersicht" anwählen soll und hier Operationen ausführen soll OHNE dass Datei 1 in den Hintergrund gerät? (auch bekannt als "Flackern").

Man könnte ja versuchen bei schnellen Berechnungen einfach wieder via Makro am Ende der Berechnungen wieder zur Datei 1 zurückzukehren(Flackern durch schnelles Wechseln). Problem dabei ist, dass diese Berechnung immer und immer wieder von Datei 2 durchgeführt werden muss und man dann zwar Datei 1 sehen würde aber andauernd auch ein Flackern sehen. Wenn es ganz hart kommt hätte ich noch eine Notlösung:
90% des Bildschirms füllt dann Datei 1 aus und 10% Datei 2. Somit könnte es mit .activate gehen ohne Flackern, allerdings mit minimaler Einbuße der Bildschirmgröße.

Wisst Ihr wie das geht, dass man eine Datei im Vordergrund halten kann und die 2. Datei berechnungen in dessen Tabellen durchführt ohne sich automatisch in den Vordergrund zu schieben?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Appl.Screenupdating:false - wie bei Arbeitsmappenwechsel??
07.08.2024 23:45:18
Onur
" dass es bitte "Datei2" und Tabelle "Übersicht" anwählen soll und hier Operationen ausführen soll" ?
WAS für Operationen denn?
AW: Appl.Screenupdating:false - wie bei Arbeitsmappenwechsel??
08.08.2024 00:02:31
Uduuh
Hallo,
Gibt es noch einen anderen Weg Excel mitzuteilen, dass es bitte "Datei2" und Tabelle "Übersicht" anwählen soll
Ja. Indem du entsprechend referenzierst.
z.B.
With Workbooks("Datei2.xlsx").Worksheets("Übersicht")

.Range("A1")="Test"
End With


Select/ Activate ist in den meisten Fällen unnötig.
Lies auch mal: https://www.herber.de/vbabasics/0001.html#Selektieren_und_Aktivieren

Gruß aus'm Pott
Udo


Anzeige
Hallo Udo, Hallo Onur
08.08.2024 00:17:28
Frank Dreier
Danke Udo für den Lösungsansatz. Leider ist der Code relativ lang, also die Operationen sind nicht auf ein oder 2 Zeilen beschränkt.
Man müsste glaube für deinen Ansatz alles umschreiben, also dass alle Befehle hinter:

With Workbooks("Datei2.xlsx").Worksheets("Übersicht")

....


erfolgen, so dass Excel versteht: In Datei 2 und Übersicht im Hintergrund. Das wäre (für mich) sehr kompliziert (z.B. if-Anweisungen). Aber ich verstehe Deinen Ansatz. Für einfache Rechenoperationen, Copy oder Range-Veränderungen ist das super.

@Onur: Ich arbeite hier mit Array, Autofilter haupsächlich.


Anzeige
Gelöst: Mit minimized und activate
08.08.2024 01:09:45
Frank Dreier
Hallo Leute.

Man kann hier etwas tricksen:

Zunächst muss nocmals direkt vor dem öffnen der Datei:

Application.Screenupdating = False


danach:

Windows("Datei2.xlsb").Activate

Sheets("Übersicht").Select
ActiveWindow.WindowState = xlMinimized


und danach ganz wichtig, falls eine weitere Datei schon offen war den Fokus nach dem Minimieren wieder auf die Datei 2 lenken:

Windows("Datei2.xlsb").Activate

Application.Screenupdating = True


legen. Somit ist nun Datei 2 aktiviert und man kann drin arbeiten - ohne dass Datei 1 im Vordergrund gestört wird durch das öffnen der Datei 2.
Anzeige

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige