Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
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

ScreenUpdating Problem Excel2010

ScreenUpdating Problem Excel2010
22.01.2021 12:13:14
Andrea
Hallo,
habe in meinem Excel2010 neuerdings das Problem, dass sich:
Application.ScreenUpdating = False und
Application.DisplayAlerts = False
nicht mehr setzen lässt. Bleibt "true". Alles rauf und runter gesucht, aber keine Lösung bisher gefunden.
Danke für die Hilfe und
viele Grüße
Andrea

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ScreenUpdating Problem Excel2010
22.01.2021 12:46:12
ChrisL
Hi Andrea
Ein paar zusätzlich Infos könnten helfen. Z.B. welche Meldung wolltest du abschalten oder wie sieht der Code aus (vielleicht die falsche Instanz angesprochen?). Oder mal einen einfachen Test durchführen:
Sub t()
Application.DisplayAlerts = False
MsgBox "Status: " & Application.DisplayAlerts
Application.DisplayAlerts = True
End Sub
cu
Chris
AW: ScreenUpdating Problem Excel2010
22.01.2021 14:42:33
Andrea
Hi Chris, ich hab von "kompliziert" bis zu "ganz einfach" alles probiert. Sprich: Excel komplett geschlossen, neue Datei mit nur einer einfachen Sub erzeugt, gespeichert. In dieser einen Sub dann auch nur diese beiden, bzw. vier Zeilen:
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.ScreenUpdating = true
Application.DisplayAlerts = true
Zudem noch PC hoch und runtergefahren. Aufgerufen über F5 oder Schaltfläche aus Tabelle. Nichts! Durchlauf ich die Zeilen schrittweise mit F8 bleibt es schon in der ersten Code-Zeile bei "True". Hm?
Weiß keinen Rat mehr.
Danke und Grüße
Andrea
Anzeige
AW: ScreenUpdating Problem Excel2010
22.01.2021 15:00:20
ChrisL
Hi Andrea
Nochmal:
1. Welche Meldung wolltest du mit DisplayAlerts = False unterdrücken?
(ich frage, weil nicht jede Meldung ist ein DisplayAlert)
2. Nachfolgender Code in eine neue leere Mappe, in ein Standardmodul eingefügt und Makro ausgeführt. Bekommst du Status WAHR oder FALSCH?
Sub t()
Application.DisplayAlerts = False
MsgBox "Status: " & Application.DisplayAlerts
Application.DisplayAlerts = True
End Sub
cu
Chris
AW: ScreenUpdating Problem Excel2010
22.01.2021 17:04:48
Andrea
Hi Chris, ok. Danke! Du hattest recht. Es ist tatsächlich "False", was aus der msgBox (Dein Code) geliefert wird.
Ich hab mich in die Irre führen lassen. Dachte, wenn ich nach F8 zurück über Application.ScreenUpdating im Code links fahre, dann ist das der aktuelle Zustand ("True").Wusste nicht, dass das doch anders ist. ... Wieder was gelernt ;-).
Also ich wollte eigentlich die Userform-Aktualisierung unterdrücken. Bei der ganzen Probiererei hab ich neben dem ScreenUpdating auch DisplayAlerts (und alle anderen Möglichkeiten, die es so gibt) getestet. Der Bildschirm flackert weiterhin.
Plan war/ist: Frame1 inkl. InkPicture in Userform1 und innerhalb Frame2 zu zoomen und/oder zu verschieben, um einen gewünschten Bildausschnitt schrittweise größer zu bekommen. Wahlweise kommt anstelle des InkPicuture1 der WindowsPlayer1 ins Frame1 rein. Die Vergrößerunge/Verkleinerung realisiere ich über Scrollbars.
Egal was ich mache, das Ding flackert in dem Augenblick, wo ich Frame1.Zoom oder das InkPicture über Width/Height vergrößern/verkleinern möchte, gibt es dieses "Flickering". Wollte den Bildschirm gerne aufzeichnen, aber das Zoom-Flackern sieht dabei nicht so schön aus. Hatte auch schon versucht während des Zoom-Prozesses, Frame1/oder Userform1 permanent auszutauschen. Auch das klappt nicht. ScreenUpdating scheint da nicht 100%ig zu greifen.
Danke für die Hilfe
Grüße
Andrea
Anzeige
AW: ScreenUpdating Problem Excel2010
22.01.2021 17:32:24
ChrisL
Hi Andrea
ScreenUpdating schaltet sich nach Abschluss einer Prozedur bzw. bei einem Unterbruch automatisch wieder ein. Wie es sich nun im Detail mit einem InkPicture verhält, weiss ich auch nicht bzw. wenn Excel eine Art von Unterbruch feststellt, dann lässt sich das Problem kaum lösen.
Ich habe nur kurz folgendes (mit einem normalen Image-Control im Frame) getestet und es schien mir flackerfrei.
Private Sub ScrollBar1_Change()
Application.ScreenUpdating = False
Frame1.Zoom = ScrollBar1.Value
End Sub
Ich nehme an du hast keine zusätzlichen Ereignisse (z.B. Userform_Zoom Event), welche in den Prozess reinfunken? Mit einer kleinen Musterdatei könntest du das Problem wenigstens mal sichtbar machen, vielleicht hat jemand anders eine Idee.
cu
Chris
Anzeige
AW: ScreenUpdating Problem Excel2010
22.01.2021 19:20:02
Andrea
Hi Chris,
erstmal vielen Dank. Du hast mich aus dieser Denk-Blockade rausgeholt. Ich war an diesem Problem schon im Oktober dran. Da hatte Nepumuk mir schon mal einen Tipp gegeben (LockWindowUpdate / https://www.herber.de/forum/cgi-bin/callthread.pl?index=1788531). Damals hat es damals nicht gefunzt und ich hab das Projekt aus Zeitgründen erstmal zur Seite gelegt. Wollte jetzt wieder ran. Gerade eben hab ich nochmal alles über Bord geschmissen und Nepumuks Code für das InkPicture genommen (mit WindowsPlayer erstmal noch nicht probiert). Siehe da, es klappt jetzt doch. Darf den Scrollbalken nicht ganz zu schnell verschieben, sonst flackerts wieder (aber wesentlich weniger als vorher). Bin glücklich - kann weiter machen. Danke Euch Beiden.
Viele Grüße
Andrea
PS anbei eine Bsp.-Datei: https://www.herber.de/bbs/user/143232.xlsm
(ziemlich einfach gestrickt erstmal). Vielleicht hast Du noch eine Idee, wie das Scrollevent exakt zur Mitte zoomt. Geht zum Schluss etwas nach rechts. Und bitte nicht über den Code meckern ;-). Vielen Dank
Anzeige
AW: ScreenUpdating Problem Excel2010
25.01.2021 09:23:07
ChrisL
Hi Andrea
Zum Ruckeln habe ich keine Idee.
Zum Scroll Event hätte ich gedacht, dass die Breite/Höhe des Bilds und Frames in der Gleichung fehlt.
Frame1.ScrollLeft = (InkPicture1.Width * Frame1.Zoom / 100 - Frame1.Width) / 2 / Frame1.Zoom *  _
100
Frame1.ScrollTop = (InkPicture1.Height * Frame1.Zoom / 100 - Frame1.Height) / 2 / Frame1.Zoom * 100
Passt aber auch noch nicht ganz. Vielleicht müsste man den Abstand vom Scrollbalken noch berücksichtigen. Jedenfalls sehe ich die Lösung im Moment nicht.
cu
Chris
AW: ScreenUpdating Problem Excel2010
25.01.2021 20:43:25
Andrea
Hi Chris, PERFEKT! Die Gleichung passt. Echt KLASSE! Danke Dir!
Zum Thema "Ruckeln" hab jetzt nochmal recherchiert. Je öfter man das LockWindowUpdate in einem Prozess bemüht, desto mehr gerät es wieder ins Flackern. Einige raten also davon ab. Wenn das Userforms viele Controls besitzt, dann wird LockWindowUpdate auch nicht mehr groß weiterhelfen.
Hier noch meine Fundstellen zu diesem Thema (sollte es jemanden interessiert):
https://stackoverflow.com/questions/57698366/vba-application-screenupdating-equivalent-for-actions-on-the-excel-ribbon
https://www.vbarchiv.net/tipps/tipp_141-neuzeichnen-von-fensterinhalten-sperren.html
https://weblogs.asp.net/jdanforth/88458
Bin allerdings da noch nicht viel weiter gekommen.
Dann noch eine kurze Schlussidee. Das Flimmern konnte ich in Nepumuks Code am Schluss mit einer kleinen Änderung nochmals deutlich reduzieren. An der Stelle:
Call LockWindowUpdate(0)
hab ich den Code mit
Call LockWindowUpdate(0 &) abgeändert. Das hat merkwürdigerweise was gebracht. Warum, weiß ich nicht.
Aber ich bin jetzt Dank Deiner Hilfe viel weiter. Nochmals Danke dafür.
Viele Grüße
Andrea
Anzeige
AW: ScreenUpdating Problem Excel2010
26.01.2021 17:49:31
ChrisL
Hi Andrea
Gerne und danke für die Rückmeldung und Bereitstellung deiner Recherche/Lösung.
cu
Chris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige