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

Infos zu "Application.ScreenUpdating = True"

Forumthread: Infos zu "Application.ScreenUpdating = True"

Infos zu "Application.ScreenUpdating = True"
17.01.2019 18:31:16
Herbert
Hallo,
da zuletzt hier geschrieben wurde, dass die Zeile "Application.ScreenUpdating = True" unnötig sei, habe ich mal etwas recherchiert und die nachfolgenden Infos zusammen getragen!
Generell schaltet Excel die Bildschirmaktualisierung am Ende eines Makros wieder auf "True". Wenn man also ein einzelnes Makro abarbeiten lässt, kann man sich diese Zeile tatsächlich sparen.
Anders sieht es aus, wenn man aus einem Makro noch andere Makros startet. Dann kann es Sinn machen, die Bildschirmaktualisierung vor dem "Call" wieder einzuschalten.
Ohne die Zeile "Application.ScreenUpdating = True", wird die Bildschirmaktualisierung erst nach Beendigung aller Sub's wieder eingeschaltet!
Deshalb kann man auch in diesem Falle nicht pauschalieren, sondern es kommt darauf an, wie die Aufgabe des Makros aussieht.
Servus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Infos zu "Application.ScreenUpdating = True"
17.01.2019 22:32:13
Daniel
aber nur, wenn man irgendeine Aktion verwendet, die nicht funktioniert, wenn die autmatische Bildschirmaktualisierung ausgeschaltet ist.
Ich kenne aber keine.
ich kenne das Problem eher anders herum, das im Makro1 die Bildschirmaktualisierung ausgeschaltet wurde.
das Makro1 rief dann das Makro2 auf, welches ebenfalls die Bildschirmaktualiserung ausschaltete, dies war erforderlich, weil das Makro2 nicht nur durch das Makro1 aufgerufen werden konnte, sondern auch seperat ausführbar war, daher wurde dann im Makro2 die Bildschirmaktualiserung auch brav wieder eingeschaltet.
damit war dann im zweiten Teil des Makro1 die Bildschirmaktualisierung wieder aktiv, obwohl das eigentlich nicht erwünscht war und keiner wusste, warum.
Gruß Daniel
Anzeige
AW: Infos zu "Application.ScreenUpdating = True"
19.01.2019 09:17:14
Luschi
Hallo Herbert & Daniel,
Daniels Beschreibung trifft des Pudels Kern, deshalb sieht es bei mir so aus:

Sub Start_Vba_1()
Application.ScreenUpdating = False
'... tu was
Call Vba_2
'... und weiter geht's
Application.ScreenUpdating = True
End Sub
Sub Vba_2()
Dim ok As Boolean
ok = Application.ScreenUpdating
If ok Then
Application.ScreenUpdating = False
End If
'... tu was anderes
Application.ScreenUpdating = ok
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Infos zu "Application.ScreenUpdating = True"
19.01.2019 10:35:43
Herbert
Hallo Luschi,
vom Prinzip her ist das so wie ich das auch handhabe. Hans Herber, den ich diesbezüglich kontaktierte, da er in seinen Excel-Materialien in allen Makros am Ende IMMER "Application.ScreenUpdating = False" schaltet, hat mir bestätigt, dass er das aus Prinzip immer so macht. Was eingeschaltet wird, soll auch wieder ausgeschaltet werden! Und dabei beachten, ob man das Makro bei der Laufzeit verlässt!
Servus
Anzeige
AW: Infos zu "Application.ScreenUpdating = True"
19.01.2019 14:06:45
Daniel
naja man sollte dann auch darauf achten, dass man alle Einstellungen, die man im Code verändert, wieder auf die Werte zurücksetzt, die sie vor Start des Makros hatten, so dass der Anwender sein System unverändert vorfindet.
Gruß Daniel
AW: Infos zu "Application.ScreenUpdating = True"
19.01.2019 21:05:14
Luschi
Hallo Herbert,
ich schalte aus ohne Rücksicht auf Verluste, merke mir aber zuvor den IST-Zustand, und den stelle ich am Ende der Prozedur wieder her.
Wo bei ich ja eine erweiterte Vba-GetMoreSpeed-Variante verwende, wozu ja noch Calculation, EnabledEvents usw. gehört.
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Anwendung von Application.ScreenUpdating in VBA


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul einfügen: Wähle im Menü Einfügen > Modul aus.

  3. Code eingeben: Füge den folgenden Code in das Modul ein:

    Sub BeispielMakro()
        Application.ScreenUpdating = False ' Bildschirmaktualisierung deaktivieren
        ' Hier kommt dein Code
        Application.ScreenUpdating = True ' Bildschirmaktualisierung aktivieren
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke Alt + F8, wähle dein Makro aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Application.ScreenUpdating = False funktioniert nicht
    Lösung: Stelle sicher, dass der Code korrekt geschrieben ist und dass du die Bildschirmaktualisierung nach dem Abschluss des Makros wieder aktivierst.

  • Problem mit anderen Makros: Wenn du mehrere Makros nacheinander ausführst, achte darauf, dass die Bildschirmaktualisierung in jedem Makro entsprechend geschaltet wird. Nutze dazu den folgenden Code:

    Sub Makro1()
        Application.ScreenUpdating = False
        Call Makro2
        Application.ScreenUpdating = True
    End Sub

Alternative Methoden

  • Verwendung von Application.DisplayAlerts: Wenn du auch Dialoge während der Ausführung vermeiden möchtest, kannst du die Anzeige von Warnmeldungen deaktivieren:

    Application.DisplayAlerts = False
  • Zusätzliche Optionen: Neben ScreenUpdating kannst du auch Application.Calculation = xlCalculationManual verwenden, um die Berechnung während der Ausführung zu steuern.


Praktische Beispiele

Hier sind zwei praktische Beispiele zur Verwendung von Application.ScreenUpdating:

  1. Beispiel: Daten kopieren:

    Sub DatenKopieren()
        Application.ScreenUpdating = False
        Sheets("Tabelle1").Range("A1:B10").Copy Destination:=Sheets("Tabelle2").Range("A1")
        Application.ScreenUpdating = True
    End Sub
  2. Beispiel: Schleife durch Zellen:

    Sub SchleifeDurchZellen()
        Application.ScreenUpdating = False
        Dim i As Integer
        For i = 1 To 10
            Cells(i, 1).Value = i
        Next i
        Application.ScreenUpdating = True
    End Sub

Tipps für Profis

  • Zustand merken: Bevor du Application.ScreenUpdating = False setzt, speichere den aktuellen Zustand:

    Dim istAktiv As Boolean
    istAktiv = Application.ScreenUpdating
    Application.ScreenUpdating = False
    ' Dein Code
    Application.ScreenUpdating = istAktiv
  • Code sauber halten: Setze alle Einstellungen, die du änderst, am Ende wieder zurück, um die Benutzerfreundlichkeit zu gewährleisten.


FAQ: Häufige Fragen

1. Warum sollte ich Application.ScreenUpdating verwenden?
Es verbessert die Ausführungsgeschwindigkeit von Makros, indem es das ständige Aktualisieren des Bildschirms während der Ausführung verhindert.

2. Was passiert, wenn ich Application.ScreenUpdating = False nicht zurücksetze?
Der Bildschirm bleibt bis zur nächsten manuellen Aktualisierung eingefroren, was die Benutzererfahrung negativ beeinflussen kann.

3. Gibt es Alternativen zu Application.ScreenUpdating?
Ja, du kannst auch Application.Calculation und Application.DisplayAlerts nutzen, um die Performance und Benutzerinteraktion zu steuern.

Mit diesen Informationen bist du nun gut gerüstet, um Application.ScreenUpdating effektiv in deinen VBA-Projekten zu verwenden!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige