wie kann ich die Bildschirmaktualisierung im Makro unterdrücken?
Danke für die Hilfe
Grüße Conny
Danke für die Hilfe
Grüße Conny
die Anweisung lautet:
Application.Screenupdating=False
am Anfang des Makros und am Ende des Makros:
Application.Screenupdating=True
Viele Grüße
Bernd
MVP für Microsoft Excel
Noch mehr Excel-Tipps und VBA-Datenbank unter: http://held-office.de
Bildschirmaktualsierung, Makro laufen lassen ohne Anzeige
damit die Ausführung des Makros nicht angezeigt wird, kann man vor den Code schreiben
application.screenupdating = false im Hintergrund ohne Anzeige
Man darf dann nur nicht vergessen, dieses wieder auf True zu setzen.
Generell sollte man aber alles mit Activate und Select vermeiden
Gruß Hajo
danke für die schnelle Hilfe.
Schönen Abend noch
Ciao Conny
ich mache es aus Prinzip, was ich ausschalte, schalte ich auch wieder ein. Das hat den Vorteil ich brauche es nicht zu Testen.
Gruß Hajo
Du hast da ganz Recht! Der Hintergrund dabei ist eher wie folgt zu sehen. "Ich mache das Licht an, wenn ich es brauche und schalte es wieder ab, wenn ich es nicht mehr brauche"
Ist also eher Gewohnheit, die ich in die Programmierung mit einfließen lassen.
Ich habe das mir so angewohnt immer alles sauber wieder abzuschalten, weil es vielleicht gerade bei der verwandeten Anweisung:
Application.DisplayAlerts=False zu Problemen kommen kann.
Dabei muß man auf jeden Fall darauf achten musst diese Anweisung wieder auf True zu setzen, da sonst die Bildschirmmeldungen wie beim Löschen von Tabellen nicht mehr rückgefrragt werden.
bei der Anweisung Application.screenupdating mache ich das dann wirklich aus eher aus traditionellen Gründen.
Viele Grüße
Bernd
MVP für Microsoft Excel
Noch mehr Excel-Tipps und VBA-Datenbank unter: http://held-office.de
Um die Bildschirmaktualisierung in Excel VBA zu steuern, kannst du die Application.ScreenUpdating
-Eigenschaft verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster und wähle Einfügen > Modul
.
Füge den folgenden Code ein:
Sub BeispielMakro()
' Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
' Hier kommt dein Code hin
' Zum Beispiel: Zellen formatieren oder Daten auswerten
' Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
End Sub
Speichere und führe das Makro aus: Drücke F5
, um das Makro auszuführen.
Indem du die Bildschirmaktualisierung deaktivierst, kannst du die Ausführung deines Makros beschleunigen, da Excel nicht bei jeder Änderung auf dem Bildschirm aktualisieren muss.
Fehler: Das Makro funktioniert nicht richtig, nachdem die Bildschirmaktualisierung deaktiviert wurde.
Application.ScreenUpdating = True
am Ende deiner Routine einfügst. Andernfalls bleibt die Anzeige eingefroren.Fehler: Der Bildschirm wird nicht richtig aktualisiert.
ScreenUpdating
-Eigenschaft nicht versehentlich wieder auf False
gesetzt hast.Zusätzlich zur Steuerung der Bildschirmaktualisierung kannst du die folgenden Methoden verwenden:
Application.DisplayAlerts: Mit dieser Methode kannst du Warnmeldungen deaktivieren, um die Benutzeroberfläche während der Ausführung eines Makros sauber zu halten. Beispiel:
Application.DisplayAlerts = False
' Dein Code hier
Application.DisplayAlerts = True
Vermeide .Select
und .Activate
: Versuche, direkte Referenzen zu verwenden, um die Notwendigkeit der Bildschirmaktualisierung zu minimieren.
Hier sind einige praktische Beispiele, wie du die Bildschirmaktualisierung in VBA nutzen kannst:
Daten kopieren und formatieren:
Sub DatenKopieren()
Application.ScreenUpdating = False
Sheets("Tabelle1").Range("A1:A10").Copy Destination:=Sheets("Tabelle2").Range("B1")
Sheets("Tabelle2").Range("B1:B10").Interior.Color = RGB(255, 255, 0) ' Gelb
Application.ScreenUpdating = True
End Sub
Eine Schleife ohne Bildschirmaktualisierung:
Sub SchleifeOhneAnzeige()
Application.ScreenUpdating = False
Dim i As Long
For i = 1 To 1000
Cells(i, 1).Value = i
Next i
Application.ScreenUpdating = True
End Sub
Verwende With ... End With
-Blöcke: Dies reduziert die Anzahl der Bildschirmaktualisierungen.
Teste dein Makro regelmäßig: Setze ScreenUpdating
nur dann auf False
, wenn es wirklich notwendig ist.
Dokumentiere deinen Code: Füge Kommentare hinzu, um zu erklären, warum du die Bildschirmaktualisierung ausschaltest. Dies ist besonders hilfreich für andere Benutzer oder zukünftige Wartungsarbeiten.
1. Warum sollte ich die Bildschirmaktualisierung ausschalten?
Durch das Ausschalten der Bildschirmaktualisierung wird die Ausführung deines Makros schneller, da Excel die Anzeige nicht bei jeder Änderung aktualisieren muss.
2. Was passiert, wenn ich die Bildschirmaktualisierung nicht wieder einschalte?
Wenn du Application.ScreenUpdating
nicht wieder auf True
setzt, bleibt der Bildschirm eingefroren, und Benutzer können keine Änderungen sehen, bis die Excel-Anwendung neu gestartet wird.
3. Gibt es eine Möglichkeit, die Bildschirmaktualisierung nur für bestimmte Teile des Codes auszuschalten?
Ja, du kannst Application.ScreenUpdating = False
und Application.ScreenUpdating = True
nur um die spezifischen Codeabschnitte setzen, die du optimieren möchtest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen