Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bildschirmaktualisierung

Forumthread: Bildschirmaktualisierung

Bildschirmaktualisierung
19.01.2003 19:57:23
Conny
Hallo Forum,
wie kann ich die Bildschirmaktualisierung im Makro unterdrücken?

Danke für die Hilfe
Grüße Conny

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Bildschirmaktualisierung
19.01.2003 19:58:27
Bernd Held
Hallo 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

Anzeige
Re: Bildschirmaktualisierung
19.01.2003 19:58:29
Hajo_Zi
Hallo Conny

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

Anzeige
Re: Bildschirmaktualisierung DANKE
19.01.2003 20:04:18
Conny
Hallo Hajo_Zi und Bernd,

danke für die schnelle Hilfe.

Schönen Abend noch
Ciao Conny

Bildschirmaktualisierung einschalten?
19.01.2003 21:51:56
Nepumuk
Hallo Bernd / Hallo Hajo,
Immer wieder lese ich: und am Ende des Makros wieder einschalten. Ich habe den Befehl "Application.Screenupdating=True" nur in wenigen Ausnahmen, in denen ich es für nötig erachtete, die Anzeige zur Laufzeit eines Makros zu aktualisieren, noch nie benutzt. Auf allen Rechnern, auf denen meine Programme laufen, aktualisiert sich die Anzeige automatisch mit dem beenden der Hauptroutine. Oder macht man das mehr aus traditionellen Gründen.
Auf Antwort hoffend
Nepumuk

Anzeige
Re: Bildschirmaktualisierung einschalten?
19.01.2003 21:54:47
Hajo_Zi
Hallo Nepumuk

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

Re: Bildschirmaktualisierung einschalten?
19.01.2003 22:01:44
Bernd Held
Hallo Nepumuk,

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

Anzeige
Re: Bildschirmaktualisierung einschalten?
19.01.2003 22:27:58
Nepumuk
Hallo Hajo, Hallo Bernd,
ich habe in einer Zeit mit programmieren angefangen, da durfte ich noch Ringkernspeicher mit der Hand fädeln (war billiger). Dann kosteten mit Einführung der ersten Chips 128kB, ja richtig gelesen kilobyte, noch rund 1500DM. Daher vieleicht mein hang zur Sparsamkeit.
Vielen Dank für die Info
Nepumuk


Anzeige
Re: Bildschirmaktualisierung einschalten?
19.01.2003 23:49:08
L.Vira
Mal so zum Spaß:
Option Explicit
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
End Sub
Starte das Form mal und verschieb es dann, und?
Re: Bildschirmaktualisierung einschalten?
20.01.2003 00:04:01
Nepumuk
Liebe L.Vira,
meine User sitzen mit derartiger Andacht vor dem Bildschirm, denen würde auch nicht der Anflug eines Gedankens an etwas derart verwerfliches wie eine Userform zu verschieben in den Kopf kommen. Niemals. Aber trotzden habe ich natürlich für diese Fälle vorgesorgt, so auch wenn z.B. eine MsgBox vor die Userform kommt, oder ähnliches.
Gute Nacht
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Bildschirmaktualisierung in Excel VBA optimieren


Schritt-für-Schritt-Anleitung

Um die Bildschirmaktualisierung in Excel VBA zu steuern, kannst du die Application.ScreenUpdating-Eigenschaft verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projektfenster und wähle Einfügen > Modul.

  3. 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
  4. 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.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht richtig, nachdem die Bildschirmaktualisierung deaktiviert wurde.

    • Lösung: Stelle sicher, dass du Application.ScreenUpdating = True am Ende deiner Routine einfügst. Andernfalls bleibt die Anzeige eingefroren.
  • Fehler: Der Bildschirm wird nicht richtig aktualisiert.

    • Lösung: Überprüfe, ob du die ScreenUpdating-Eigenschaft nicht versehentlich wieder auf False gesetzt hast.

Alternative Methoden

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.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Bildschirmaktualisierung in VBA nutzen kannst:

  1. 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
  2. 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

Tipps für Profis

  • 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.


FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige