meine Abfrage unter VB läuft nun.
Da jeder einzelne von ca. 350 Einträgen in einer Gesamtliste von 650 Einträgen gesucht wird, dauert der Lauf recht lange.
Wisst ihr, ob man die Bildschirmaktualisierung abschalten kann?
Viele Grüsse
Dominik
Um die Bildschirmaktualisierung in Excel VBA auszuschalten, folge diesen Schritten:
Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem du ALT + F11 drückst.
Füge den folgenden Code in dein Makro ein, um die Bildschirmaktualisierung auszuschalten:
Sub BeispielMakro()
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
' Dein Code hier
Application.ScreenUpdating = True ' Bildschirmaktualisierung wieder einschalten
End Sub
Stelle sicher, dass du die Bildschirmaktualisierung am Ende des Makros wieder aktivierst, um zu verhindern, dass Excel nicht mehr reagiert.
Problem: Excel bleibt nach dem Ausführen des Makros hängen.
Application.ScreenUpdating am Ende des Makros wieder auf True gesetzt wird.Problem: Änderungen im Excel werden nicht angezeigt.
Application.ScreenUpdating = True korrekt gesetzt hast, um die Anzeige zu aktualisieren.Wenn du die Bildschirmaktualisierung in Excel VBA ausschalten möchtest, gibt es auch alternative Ansätze:
DisplayAlerts deaktivieren: Setze Application.DisplayAlerts = False, um Dialogfelder während der Ausführung des Makros zu unterdrücken. Vergiss nicht, dies am Ende wieder auf True zu setzen.
Application.DisplayAlerts = False
' Dein Code hier
Application.DisplayAlerts = True
Use von DoEvents: Wenn dein Makro lange läuft, kannst du DoEvents verwenden, um Excel dazu zu bringen, auf Benutzereingaben zu reagieren, ohne die Bildschirmaktualisierung aktiv zu halten.
Hier ist ein einfaches Beispiel, wie du die Bildschirmaktualisierung ausschalten und trotzdem die Benutzerfreundlichkeit beibehalten kannst:
Sub LangeLaufendeProzedur()
Application.ScreenUpdating = False ' Bildschirmaktualisierung ausschalten
Dim i As Integer
For i = 1 To 10000
' Simuliere einige Berechnungen
Cells(i, 1).Value = i * 2
Next i
Application.ScreenUpdating = True ' Bildschirmaktualisierung wieder einschalten
End Sub
In diesem Beispiel wird die Bildschirmaktualisierung während einer langen Schleife deaktiviert, um das Flackern des Bildschirms zu vermeiden.
Vermeide unnötige Aktualisierungen: Setze die Bildschirmaktualisierung nur dann auf False, wenn es wirklich notwendig ist. Manchmal kann die Benutzeroberfläche auch ohne diese Anpassung schnell genug sein.
Performance verbessern: Neben dem Ausschalten der Bildschirmaktualisierung kannst du auch das Berechnungsmodus auf xlManual setzen, um die Leistung weiter zu steigern.
Application.Calculation = xlManual
' Dein Code hier
Application.Calculation = xlAutomatic
Debugging: Wenn du bei der Fehlerbehebung bist, versuche, die Bildschirmaktualisierung vorübergehend wieder zu aktivieren, um zu sehen, ob und wo der Fehler auftritt.
1. Frage
Wie kann ich die Bildschirmaktualisierung in VBA dauerhaft deaktivieren?
Antwort: Es gibt keine Möglichkeit, die Bildschirmaktualisierung dauerhaft zu deaktivieren, da sie nach jedem Makro wieder auf True gesetzt werden sollte. Du kannst sie jedoch in jedem Makro, das du schreibst, deaktivieren.
2. Frage
Was passiert, wenn ich die Bildschirmaktualisierung nicht wieder aktiviere?
Antwort: Wenn du Application.ScreenUpdating nicht wieder auf True setzt, bleibt die Benutzeroberfläche von Excel eingefroren und zeigt keine Änderungen an, was zu Verwirrung führen kann.
3. Frage
Beeinflusst das Deaktivieren der Bildschirmaktualisierung die Geschwindigkeit meines Makros?
Antwort: Ja, das Deaktivieren der Bildschirmaktualisierung kann die Ausführungszeit deines Makros erheblich verbessern, besonders bei langwierigen Operationen.