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

Refresh einer VBA-Userform

Forumthread: Refresh einer VBA-Userform

Refresh einer VBA-Userform
07.03.2003 13:49:04
Marko Kleistner
Hallo,
mit welchen Befehlen kann ich während der Laufzeit in VBA die Schaltflächen bzw. Textboxen so refreshen, dass die Änderung z.B. der Hintergrundfarbe bzw. eines Textes sichtbar wird?
Ich verwende Excel 97 auf Windows NT.
Gruß, Marko

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Refresh einer VBA-Userform
07.03.2003 13:51:51
Hajo_Zi

Hallo Marko

so ganz ist mir das nicht klar, aber vielleicht schon DoEvents
Gruß Hajo

Re: Refresh einer VBA-Userform
07.03.2003 13:56:35
Marko Kleistner

Hallo Hajo,
das ging ja fix mit der Antwort.
DoEvents funktioniert, doch warum bin ich da nicht selbst draufgekommen. Ich nahm an, DoEvents ist nur für Ereignisse wie das Schalten eines Buttons etc.
Demzufolge muß ich immer DoEvents aufrufen, wenn der Screen erneuert werden soll (also Änderungen im Screen aktiv werden sollen...mmh)
Danke Dir!
Gruß, Marko

Anzeige
;
Anzeige

Infobox / Tutorial

Refresh einer VBA-Userform


Schritt-für-Schritt-Anleitung

Um eine VBA-Userform in Excel zu refreshen, kannst du den Befehl DoEvents verwenden. Dieser Befehl sorgt dafür, dass Excel die Änderungen in der Userform anzeigt. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (ALT + F11).

  2. Wähle die Userform aus, die du aktualisieren möchtest.

  3. Füge den folgenden Code in das relevante Ereignis (z.B. Button-Klick) ein:

    Private Sub CommandButton1_Click()
       ' Ändere die Hintergrundfarbe der Userform
       Me.BackColor = RGB(255, 255, 0) ' Gelb
       ' Aktualisiere die Userform
       DoEvents
    End Sub
  4. Schließe den VBA-Editor und teste die Userform.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Refresh einer Userform ist, dass Änderungen nicht sofort sichtbar sind. Hier sind einige Lösungen:

  • Problem: Änderungen erscheinen nicht.

    • Lösung: Stelle sicher, dass du DoEvents direkt nach der Änderung aufrufst.
  • Problem: Die Userform friert ein.

    • Lösung: Überprüfe, ob du in einer Schleife DoEvents verwendest, um die Benutzeroberfläche reaktionsfähig zu halten.

Alternative Methoden

Wenn DoEvents nicht die gewünschte Wirkung zeigt, kannst du auch folgende Methoden ausprobieren:

  • VBA .Refresh: Du kannst auch Me.Repaint verwenden, um die Userform zu aktualisieren.

    Private Sub CommandButton1_Click()
      Me.BackColor = RGB(0, 255, 0) ' Grün
      Me.Repaint
    End Sub
  • VBA Reload Userform: Eine andere Möglichkeit ist, die Userform neu zu laden:

    Private Sub CommandButton1_Click()
      Unload Me
      Load Me
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Userform in verschiedenen Szenarien aktualisieren kannst:

  • Hintergrundfarbe ändern:

    Private Sub CommandButton1_Click()
      Me.BackColor = RGB(255, 0, 0) ' Rot
      DoEvents
    End Sub
  • Text in einer TextBox aktualisieren:

    Private Sub CommandButton2_Click()
      Me.TextBox1.Text = "Neuer Text"
      DoEvents
    End Sub

Tipps für Profis

  • Verwende DoEvents nur dann, wenn es notwendig ist. Zu viel Einsatz kann die Leistung beeinträchtigen.
  • Teste deine Userform in verschiedenen Excel-Versionen, da sich das Verhalten bei excel vba refresh zwischen den Versionen ändern kann.
  • Halte deine Userform einfach und übersichtlich. Zu viele Elemente können das Refreshen komplizierter machen.

FAQ: Häufige Fragen

1. Was ist DoEvents und wann sollte ich es verwenden?
DoEvents ist ein Befehl in VBA, der es Excel ermöglicht, andere Aufgaben zu erledigen, während dein Code läuft. Es ist besonders nützlich, wenn du die Benutzeroberfläche während eines langen Prozesses reaktionsfähig halten möchtest.

2. Gibt es Alternativen zu DoEvents?
Ja, du kannst Me.Repaint oder Unload Me gefolgt von Load Me verwenden, um die Userform zu aktualisieren. Diese Methoden können in bestimmten Situationen effektiver sein.

3. Funktioniert dieser Code in allen Excel-Versionen?
Der gezeigte Code funktioniert in den meisten modernen Excel-Versionen. Für Excel 97 kann es jedoch Unterschiede geben, daher ist es ratsam, die Kompatibilität zu testen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige