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

Application.StatusBar wird nicht angezeigt

Forumthread: Application.StatusBar wird nicht angezeigt

Application.StatusBar wird nicht angezeigt
23.06.2015 08:38:30
Martin
Guten Morgen!
Mein Makro läuft ca. 20 Minuten, deswegen habe ich eine "User-Beruhigung" via Application.StatusBar = "xyz" in die Schleife eingebaut.
Die Anzeige funktioniert leider nur manchmal.
Meistens schaltet Excel ab Beginn den rotierenden Warte-Cursor ein und sperrt alle Ausgaben, also Zellen, die sich ändern, werden auch nicht angezeigt.
Das Makro läuft einwandfrei durch, die entsprechenden Zellen sind alle richtig. Aber eben leider in "Blind-Verarbeitung".
Kann man die Ausgabe irgendwie forcieren?
Danke und besten Gruß aus Hamburg.
Martin

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.StatusBar wird nicht angezeigt
23.06.2015 09:01:34
Nepumuk
Hallo,
du könntest nach dem Ausgeben in der Statusleiste ein DoEvents einbauen. Bedenke, das ist eine weitere Bremse. 1.000mal DoEvents dauern 0,0625 Sekunden.
Gruß
Nepumuk

AW: Application.StatusBar wird nicht angezeigt
23.06.2015 09:09:10
Martin
Vielen Dank!
Genau das habe ich gesucht.
Vorher wurde z.B. auch Strg-Pause oft nicht erkannt.
Endlich habe ich nicht mehr das Gefühl, von Excel bevormundet zu werden! :-)
Beste Grüße
Martin

Anzeige
AW: Application.StatusBar wird nicht angezeigt
23.06.2015 09:07:47
Dirk
Hallo Martin,
füege am Anfang der Schleife application.screenupdating=false ein (fals noch nicht vorhanden) und am Ende der Schleife application.screenupdating = True
Dann sollte der Fortschritt waehrend des Schleifendurchlaufes angezeigt werden.
Grüesse nach Hamburg
Dirk
;

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

Application.StatusBar in Excel VBA richtig nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel. Du kannst dies tun, indem du die Tastenkombination ALT + F11 verwendest.

  2. Erstelle ein neues Modul: Rechtsklicke im Projektbereich auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".

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

    Sub BeispielMakro()
       Application.StatusBar = "Makro läuft..."
       Application.ScreenUpdating = False
    
       ' Simuliere eine lange Schleife
       For i = 1 To 100000
           ' Füge hier deinen Code ein
           If i Mod 10000 = 0 Then
               Application.StatusBar = "Fortschritt: " & i & " von 100000"
               DoEvents ' Erlaubt Excel, zu reagieren
           End If
       Next i
    
       Application.ScreenUpdating = True
       Application.StatusBar = False ' Setze die Statusleiste zurück
    End Sub
  4. Starte das Makro: Drücke F5 oder klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Statusleiste wird nicht aktualisiert: Wenn die Statusleiste nicht regelmäßig aktualisiert wird, stelle sicher, dass du DoEvents in deiner Schleife verwendest. Dies lässt Excel auf Benutzereingaben reagieren und aktualisiert die Anzeige.

  • Excel friert ein: Wenn Excel während der Ausführung deines Makros nicht reagiert, könnte es helfen, Application.ScreenUpdating = False am Anfang deines Makros zu setzen und es am Ende wieder auf True zu setzen.


Alternative Methoden

Einige Benutzer präferieren, den Fortschritt in einer Message Box anzuzeigen, anstatt die Statusleiste zu verwenden. Dies kann jedoch die Ausführung des Makros verlangsamen. Eine einfache Implementierung könnte so aussehen:

If i Mod 10000 = 0 Then
    MsgBox "Fortschritt: " & i & " von 100000"
End If

Praktische Beispiele

Hier ist ein weiteres Beispiel, das zeigt, wie du die Statusleiste nutzen kannst, um den Fortschritt eines Datenverarbeitungsprozesses anzuzeigen:

Sub DatenVerarbeiten()
    Dim i As Long
    Application.StatusBar = "Daten werden verarbeitet..."
    Application.ScreenUpdating = False

    For i = 1 To 5000
        ' Datenverarbeitungslogik hier
        If i Mod 500 = 0 Then
            Application.StatusBar = "Verarbeitet: " & i & " von 5000"
            DoEvents
        End If
    Next i

    Application.ScreenUpdating = True
    Application.StatusBar = "Fertig!"
End Sub

Tipps für Profis

  • Verwende Application.StatusBar = "...", um den Status deiner Makros anzuzeigen. Vergiss nicht, die Statusleiste am Ende deines Makros wieder auf False zu setzen, um sie zurückzusetzen.

  • Setze Application.ScreenUpdating = False, um die Anzeige zu verbessern und die Ausführungsgeschwindigkeit deines Makros zu erhöhen.

  • Nutze DoEvents, um Excel die Möglichkeit zu geben, Benutzereingaben während der Ausführung zu verarbeiten, was besonders nützlich ist, wenn dein Makro lange läuft.


FAQ: Häufige Fragen

1. Warum wird meine Statusleiste nicht angezeigt?
Das kann passieren, wenn Application.ScreenUpdating auf False gesetzt ist. Stelle sicher, dass du es am Ende deines Makros wieder auf True setzt.

2. Was ist der Vorteil von DoEvents?
DoEvents ermöglicht es Excel, auf Benutzerinteraktionen zu reagieren, während das Makro läuft. Dies ist besonders hilfreich, um ein Einfrieren der Anwendung zu verhindern.

3. Kann ich die Statusleiste auch in anderen Anwendungen verwenden?
Die Application.StatusBar ist spezifisch für Excel und wird in anderen Anwendungen von Microsoft Office nicht unterstützt.

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