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

Forumthread: UserForm Initialisieren

UserForm Initialisieren
AlexO
Hallo liebe Excel/VBA Experten,
ich bin in meiner VBA-Lernphase mal wieder an einer Ecke angekommen an mir einfach Zusammenhänge fehlen. Vielleicht erleuchtet mich einer von Euch ...
Ich möchte eine UserForm aufrufen und vorher initialisieren. Dazu habe ich einen Formularbutton erstellt der das Macro CallZeitSerie aufruft.

Sub CallZeitSerie()
Load ZeitSerie
ZeitSerie.Show
End Sub

Ausserdem habe ich das Macro ZeitSerie_Initialize definiert

Private Sub ZeitSerie_Initialize()
MsgBox ("ZeitSerie_Initialize")
End Sub

Jetzt habe ich mir eingebildet, daß bei ZeitSerie.Show das Ergeignis _Initialize auftritt ... tut es aber nicht ... das Formular wird zwar gestartet aber die MsgBox kommt nicht (bzw. die eigentliche Initialisierung wird nicht durchgeführt) ... *frust*
Was habe ich vergessen ... bzw. was mache ich falsch ?
Frohe Ostern wünscht euch
Alex
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: UserForm Initialisieren
Ulf
Sub CallZeitSerie()
ZeitSerie.Show
End Sub

Private Sub ZeitSerie_Initialize()
MsgBox ("ZeitSerie_Initialize")
End Sub

Ulf
AW: UserForm Initialisieren
AlexO
@Ulf,
also ich habe mal den Load-Befehl auskommentiert ... leider wird offensichtlich das Init-Event immer noch nicht ausgelöst ... oder ich habe noch etwas wesentliches vergessen ?
Bitte helft mir weiter ... ich hänge total in der Luft ... *immer noch frust*
Gruß
Alex
Anzeige
AW: UserForm Initialisieren
11.04.2004 13:18:02
Christoph
Hi Alex,
ich schätze du hast die einzelnen "Subs" nicht im zugehörigen Modul
hier ein Bsp:
https://www.herber.de/bbs/user/5168.xls
Gruß
Christoph
AW: UserForm Initialisieren
AlexO
Hallo Ulf und Christoph,
vielen Dank für eure Antworten. Das Beispiel von Christoph hat mich letztendlich zu einer Lösung gebracht ...
Ich habe UserForm_Initialize definiert ... und schon ging es ... Im Moment ist mir nur der Zusammenhang nicht klar ... kann ich nicht für jede Form individuell ein Initialize erstellen ? Oder exitiert in jeder definierten Form ein UserForm_Initialize ?
Ich bin erstmal Glücklich dass ich weitermachn kann *freu*
Danke an das Forum und meine beiden Helfer.
Gruß
Alex
Anzeige
Danke für die Rückmeldung (m.T.)
12.04.2004 07:01:14
Christoph
Hi Alex,
alle "Subs", die die Userform betreffen, müssen in das Modul genau dieser Userform.
Hierzu gehört an erster Stelle auch die Initialisierung der Form. (ebenso jene für ComandButtons, OptionButtons, und was du sonst noch für Steuerelemente in deiner Form eingesetzt hast)
Wenn du mehrere UF's hast, dann hast du auch für jede UF ein Modul. Das Modul kannst du im VBA-Editor öffnen mit: "rechte Maustaste auf die UF - Code anzeigen". Hier findest du oben zwei DropDown-Menüs. Links kannst du wählen zwischen "Allgemein" und "Userform". Wähle hier "Userform". Anschließend hast du im rechten DropDown-Menü alle Prozeduren zur Auswahl, die die UF betreffen. (u.a. auch "Initialize")
Gruß
Christoph
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

UserForm Initialisieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine UserForm in Excel VBA korrekt zu initialisieren, kannst du die folgenden Schritte befolgen:

  1. UserForm erstellen:

    • Öffne den VBA-Editor (Alt + F11).
    • Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "UserForm".
  2. Button hinzufügen:

    • Füge einen Button zu deiner UserForm hinzu, um die Initialisierung auszulösen.
  3. Makro für das Aufrufen der UserForm:

    • Erstelle ein Makro, um die UserForm zu laden und anzuzeigen. Zum Beispiel:
      Sub CallZeitSerie()
      Load ZeitSerie
      ZeitSerie.Show
      End Sub
  4. Initialisierungs-Sub definieren:

    • Füge die UserForm_Initialize Prozedur in das Code-Modul der UserForm ein:
      Private Sub UserForm_Initialize()
      MsgBox ("UserForm Initialisiert")
      End Sub
  5. Makro ausführen:

    • Starte das Makro CallZeitSerie, um die UserForm zu laden und die Initialisierung durchzuführen.

Häufige Fehler und Lösungen

  1. Init-Event wird nicht ausgelöst:

    • Stelle sicher, dass die UserForm_Initialize Prozedur im richtigen Modul definiert ist. Sie muss im Code-Modul der UserForm platziert werden.
  2. Fehler beim Laden der UserForm:

    • Wenn du den Load-Befehl verwendest, kann dies die Initialisierung verhindern. Probiere es ohne den Load-Befehl:
      Sub CallZeitSerie()
      ZeitSerie.Show
      End Sub
  3. Mehrere UserForms und deren Initialisierung:

    • Jede UserForm hat ihr eigenes UserForm_Initialize, das du individuell definieren kannst.

Alternative Methoden

Es gibt verschiedene Ansätze zur Initialisierung von UserForms in Excel VBA:

  • Direktes Initialisieren: Anstatt Load zu verwenden, kannst du die UserForm direkt mit Show aufrufen. Dies kann in manchen Fällen die Performance verbessern.
  • Öffentliche Variablen: Du kannst öffentliche Variablen in einem Modul definieren, um Daten zwischen UserForms zu übertragen und diese während der Initialisierung zu verwenden.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine UserForm initialisieren

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige