Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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 = False i.V. m. "Activate"

ScreenUpdating = False i.V. m. "Activate"
Peter
Guten Morgen, liebe Excel-Freunde,
ich habe inzwischen etliche der vielen Beiträge im Forum zu "ScreenUpdating" gelesen. Leider funktioniert "ScreenUpdating = False" nicht, wenn mit "Activate" eine weitere Arbeitsmappe geöffnet wird und in dieser z. B. Kopier-Aktionen (von der 1. in die 2. Mappe) stattfinden. Diese Aktionen werden dann trotz "ScreenUpdating = False" am Bildschirm sichtbar. Meine Frage: Gibt es überhaupt eine Möglichkeit - und zwar bei Beibehaltung von "Activate" - die Bildschirmbewegungen zu verhindern?
Für Eure Antwort im Voraus herzlichen Dank!
Mit freundlichem Gruß
Peter Kloßek

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

Betreff
Benutzer
Anzeige
ScreenUpdating und Activate
29.11.2011 10:45:20
Erich
Hi Peter,
teste mal bitte (während zwei Mappen mit je zwei Blättern offen sind):

Sub aaaaaa()
'   Application.ScreenUpdating = False
Workbooks(2).Activate
Sheets(2).Select
Application.Wait Now + 0.00002
Workbooks(1).Activate
Sheets(2).Select
Application.Wait Now + 0.00002
Workbooks(2).Activate
Sheets(1).Select
Application.Wait Now + 0.00002
Workbooks(1).Activate
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
Ändert sich etwas, wenn du ScreenUpdating=False aktivierst? Ich denke, dass ja.
Meine Frage:
Gibt es überhaupt eine Notwendigkeit, "Activate" zu benutzen? Für fast alle Operationen ist das überflüsssig.
(steht auch in Foren immer wieder im Zusammenhang mit "Select vermeiden")
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: ScreenUpdating und Activate
29.11.2011 15:32:10
Peter
Hallo lieber Ernst aus Kamp-Lintfort,
schönen Dank für Dein Beispiel. Ich habe das ausprobiert und konnte es nicht glauben, dass es funktioniert. Bei meinem riesigen Makro mit vielen "Call"-Verzweigungen jedoch nicht. Nach langem Suchen bin ich jetzt endlich darauf gekommen, woran es liegt. Über die Calls wird ScreenUpdating üblicherweise wieder auf "True" gesetzt. Daraufhin habe ich zunächst nach jedem Call in dem Hauptmakro und auch nach jedem Call in den Untermakros ScreenUpdating auf "False" gesetzt. Dies brachte schon mal Fortschritte insofern einige Passagen jetzt nicht mehr sichtbar waren - aber noch nicht alle. Erst nachdem ich gegen die Regel verstieß und am Ende der "Call"-Makros den Befehl "Applications.ScreenUpdating = True" einfach wegnahm, lief der Makro mit derselben Bildschirmanzeige durch! Da manche Calls nicht nur im Verbund sondern auch als Einzelmakro laufen, war noch die Frage, ob diese nun einzeln auch ohne ScreenUpdating = True richtig laufen. Dies ist so, weil Excel automatisch am Ende eines jeden Makros auf diesen Zustand schaltet.
ScreenUpdating und Activate haben demnach gar nichts miteinander zu tun. Ich habe mich durch die zahlreichen Beiträge im Forum auf den Holzweg führen lassen. Übrigens: Select vermeiden ist gut und schön, aber geht das auch, wenn Zellen mit Formel-Inhalten nur mit ihrem Wert kopiert werden sollen? Wenn ja, kannst Du mir sagen "wie"? Das normale direkte Kopieren ist mir bekannt; dabei wird jedoch der Zellinhalt 1:1 übernommen.
Viele Grüße und noch einen schönen Tag.
M.f.G. Peter Kloßek
Anzeige
Kopieren ohne Activate oder Select
29.11.2011 16:52:24
Erich
Hi Peter,
hier ein paar Beispiele:

Sub bbbbbbb()
' Werte "kopieren" von Workbooks(2) in Mappe1
' Aktiv kann eine der beiden Mappen oder auch eine dritte sein.
' Statt x-mal Workbooks("Mappe1").Worksheets(1) zu schreiben,
' verwendet man besser With ... End With
' Variante 1: ohne Kopieren
Workbooks("Mappe1").Worksheets(1).Range("B2:D5") = _
Workbooks(2).Worksheets(1).Range("F7:H10").Value
Workbooks("Mappe1").Worksheets(1).Cells(2, 2).Resize(4, 3) = _
Workbooks(2).Worksheets(1).Cells(7, 6).Resize(4, 3).Value
' Variante 2: Kopieren, Einfügen nur Werte
Workbooks(2).Worksheets(1).Range("F7:H10").Copy
Workbooks("Mappe1").Worksheets(1).Range("B2").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Workbooks(2).Worksheets(1).Cells(7, 6).Resize(4, 3).Copy
Workbooks("Mappe1").Worksheets(1).Cells(2, 2).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False   ' zur Variante 2
End Sub
Und nun noch: Ernst beiseite, ich bin der Erich -:))
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Kopieren ohne Activate oder Select
29.11.2011 20:33:59
Peter
Lieber Erich, ich danke Dir recht herzlich und bitte um Entschuldigung wegen der Verwechselung des Vornamens.
M.f.G. Kloßek
Schau mal hier im Forum
29.11.2011 18:56:36
Erich
Hi Peter,
schau mal
https://www.herber.de/forum/archiv/1236to1240/t1239859.htm
und
https://www.herber.de/forum/archiv/1236to1240/t1239668.htm
Beide Threads (einer von heute und einer von vorgestern) findest du noch einige Tage in der aktuellen Forums-Liste.
(Ich habe hier die Archiv-Links genannt, denn die stimmen auch nach einer Woche noch.)
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige

62 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige