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

Userform_Activate oder _Initialize ?!

Forumthread: Userform_Activate oder _Initialize ?!

Userform_Activate oder _Initialize ?!
k
Hallo,
kann mir jemand den genauen Unterschied beider definieren ?
Denke: Activate = Immer wenn wenn Fenster (Userform) aktiviert wird (WIndows-Fenster technisch, wechseln zwischen 2 Fenstern, sobald die Userform wieder aktiv ist - wird der Code entsprechend ausgeführt) und
Initialize wird eben "nur" beim Starten der Userform der Code ausgeführt und solange das Fenster nicht geschlossen wird (und "ausblenden Hide, zählt nicht dazu) - bleibt der Code davon unberührt oder ?!
Gibt es auch einen Befehl - mit dem Man eine Userform bewegen kann, einen Code immer wieder durchzuführen (Intervall-Technisch) - solange die Userform offen ist ? Wenn ja wie müsste er aussehen und wo muss er stehen ?
Gruß und Danke!
Kay
Anzeige

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

Betreff
Benutzer
Anzeige
Initialize : Nach .Show
06.08.2009 15:02:50
NoNet
Hallo Kay,
zu Deiner ersten Frage : Das hast Du fast schon selbst beantwortet :
Wenn man ein UserForm per UF1.Show anzeigt, wir das Ereignis "Initialize" und danach "Activate") ausgeführt, wenn es zuvor nicht geladen war. Dies ist beim ersten Aufruf des UF der Fall (auch nach einem STOP !), oder wenn das UF zuvor per Schließen-Kreuz oder Unload Me geschlossen wurde. Falls das UF nur per Me.Hide ausgeblendet wurde, wird beim nächsten Aufruf des UFs nur das "Activate"-Eregnis - aber nicht das "Initialize"-Ereignis ausgeführt.
Frage 2 darf gerne ein anderer Helfer beatnworten ;-)
Gruß, NoNet
Anzeige
AW: Userform-Update per OnTime
06.08.2009 15:50:28
fcs
Hallo Kay,
hier ein Beispiel. Dabei wird die OnTime-Methode genutzt, um in regelmäßigen Abständen Daten im Userform zu aktualiseren.. Die für OnTime eforderlichen Prozeduren speichere ich meistens in einem allgemeinen Modul. damit hab ich die besten Erfahrungen. Diese Prozeduren kann man dann problemlos von überall her starten.
Gruß
Franz
https://www.herber.de/bbs/user/63669.xls
Anzeige
AW: Userform-Update per OnTime
06.08.2009 16:16:36
k
Hallo,
...habt Super vielen Dank ! Wieder was gelernt ;o)
Danke auch Dir Franz für Deine Musterdatei - damit konnte ich mal das ganze besser nachvollziehen und auch die Intervall-Funktion kann ich gut so aufnehmen und für mich entsprechend anpassen...
Also habt Dank !
Gruß
Kay
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Userform: Unterschiede zwischen Activate und Initialize in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und gehe in den VBA-Editor (ALT + F11). Erstelle ein neues Userform.

  2. Ereignisse verstehen:

    • Initialize: Dieses Ereignis wird ausgeführt, wenn das Userform zum ersten Mal angezeigt wird oder nachdem es mit Unload Me geschlossen wurde. Es ist ideal, um Formularelemente mit Daten zu füllen.
    • Activate: Dieses Ereignis wird ausgeführt, wenn das Userform aktiv wird, z.B. wenn es erneut angezeigt wird nach einem Me.Hide.
  3. Code einfügen: Füge den folgenden Code in das Userform-Modul ein:

    Private Sub UserForm_Initialize()
       ' Code, der beim Initialisieren des Userforms ausgeführt wird
       MsgBox "Userform wird initialisiert."
    End Sub
    
    Private Sub UserForm_Activate()
       ' Code, der beim Aktivieren des Userforms ausgeführt wird
       MsgBox "Userform ist aktiv."
    End Sub
  4. Userform anzeigen: Verwende die folgende Zeile, um das Userform anzuzeigen:

    UF1.Show

Häufige Fehler und Lösungen

  • Fehler: Der Code im Initialize-Ereignis wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass das Userform nicht nur mit Me.Hide ausgeblendet wurde, sondern tatsächlich mit Unload Me geschlossen wurde.
  • Fehler: Der Activate-Code wird nicht ausgeführt, wenn das Userform bereits offen ist.

    • Lösung: Überprüfe, ob das Userform tatsächlich aktiv ist. Der Activate-Code wird nicht ausgeführt, wenn es nur ausgeblendet wurde.

Alternative Methoden

Eine alternative Methode zur Aktualisierung von Daten im Userform ist die Verwendung der OnTime-Methode. Diese ermöglicht es, einen bestimmten Code in festgelegten Intervallen auszuführen. Beispiel:

Dim nextTime As Double

Sub StartTimer()
    nextTime = Now + TimeValue("00:01:00") ' jede Minute
    Application.OnTime nextTime, "UpdateUserForm"
End Sub

Sub UpdateUserForm()
    ' Hier kannst du den Code zur Aktualisierung einfügen
    MsgBox "Userform wird aktualisiert."
    StartTimer ' Timer erneut starten
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, das die Verwendung von Initialize und Activate zeigt:

  1. Erstelle ein Userform mit zwei Textfeldern und einem Button.
  2. Verwende den folgenden Code:

    Private Sub UserForm_Initialize()
       TextBox1.Value = "Willkommen!"
    End Sub
    
    Private Sub UserForm_Activate()
       TextBox2.Value = "Userform aktiv!"
    End Sub

Wenn du das Userform öffnest, wird im ersten Textfeld "Willkommen!" angezeigt. Jedes Mal, wenn du das Userform aktivierst, wird im zweiten Textfeld "Userform aktiv!" angezeigt.


Tipps für Profis

  • Verwende das Userform_Activate-Ereignis, um dynamische Daten anzuzeigen, die sich möglicherweise während der Verwendung des Userforms ändern.
  • Nutze das Initialize-Ereignis, um feste Werte einzustellen, die sich nicht ändern, während das Userform geöffnet bleibt.
  • Überlege, wie du die Performance des Userforms verbessern kannst, indem du nur notwendige Operationen im Activate-Ereignis ausführst.

FAQ: Häufige Fragen

1. Was ist der Hauptunterschied zwischen Userform_Initialize und Userform_Activate?
Der Hauptunterschied liegt darin, dass Initialize beim ersten Öffnen des Userforms ausgeführt wird, während Activate jedes Mal ausgeführt wird, wenn das Userform aktiv wird.

2. Kann ich beide Ereignisse kombinieren?
Ja, du kannst beide Ereignisse verwenden, um verschiedene Aspekte deines Userforms zu steuern, je nachdem, ob es gerade initialisiert oder aktiviert wird.

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