Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel 97 - VBA: Initialize-Ereignis wird nicht erkannt...

312 views
Skip to first unread message

Nils Heiliger

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
Ich bin bei der Erstellung eines umfangreichen Makros auf ein Problem
gestoßen, das ich selber nicht lösen kann.

Ich rufe aus einem Dialogfenster (UserForm) über eine Schaltfläche ein
anderes Dialogfenster auf. Das Problem ist, daß das Ereignis INITIALIZE
[Privat Sub UserForm_Initialize()] nicht erkannt wird und in meinem Fall
eine Variable nicht erneut eingelesen wird.

Private Sub CommandButton1_Click()
UserForm1.Hide
UserForm2.Show
End Sub

Beim erstmaligen Aufruf funktioniert es, aber wenn ich ein vorher
initialisiertes Dialogfenster nochmals aufrufe nicht mehr. Meine
Vermutung ist, daß durch HIDE das Fenster ausgeblendet aber nicht
geschlossen wird und bei SHOW nur wieder eingeblendet wird, aber nicht
erneut initialisiert wird.

Ich habe es schon mit LOAD, UNLOAD, REPAINT, ACTIVATE versucht, war aber
leider nicht erfolgreich. Wer hat einen Lösungsansatz für mich?

Gruß
Nils Heiliger
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Donauradweg 1998: In 6 1/2 Tagen mit dem Fahrrad
von der Quelle bis nach Wien...
http://home.t-online.de/home/nils.heiliger/default.htm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Andreas Steffens

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
Hallo Nils,

> Ich rufe aus einem Dialogfenster (UserForm) über eine Schaltfläche ein
> anderes Dialogfenster auf. Das Problem ist, daß das Ereignis
INITIALIZE
> [Privat Sub UserForm_Initialize()] nicht erkannt wird und in meinem
Fall
> eine Variable nicht erneut eingelesen wird.
>
> Private Sub CommandButton1_Click()
> UserForm1.Hide
> UserForm2.Show
> End Sub
>
> Beim erstmaligen Aufruf funktioniert es, aber wenn ich ein vorher
> initialisiertes Dialogfenster nochmals aufrufe nicht mehr. Meine
> Vermutung ist, daß durch HIDE das Fenster ausgeblendet aber nicht
> geschlossen wird und bei SHOW nur wieder eingeblendet wird, aber nicht
> erneut initialisiert wird.

Deine Vermutung ist richtig, das initialize Ereignis tritt nicht ein,
wenn Du die Userform mit Hide ausgeblendet hast. Folgender Code zur
Demonstration:

Zwei Userforms, je mit einem Label und einem CommandButton:

Userform1:

Private Sub CommandButton1_Click()
Me.Hide
UserForm2.Show
End Sub

Private Sub UserForm_Initialize()
Label1.Caption = Now()
End Sub

Userform2:

Private Sub CommandButton1_Click()
Unload Me
UserForm1.Show
End Sub

Private Sub UserForm_Initialize()
Label1.Caption = Now()
End Sub

Die Zeit im Userform1 wird nur einmal aktualisiert, im Userform2 bei
jedem Aufruf.

HTH,
Andreas

Nils Heiliger

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
Hallo Andreas,

vielen Dank für Deine Bestätigung meines Problems...
Die Aufgabenstellung ist das Aktualisieren von UserForm1 in Deinem gut
gewählten Beispiel. Hat jemand eine Lösung?

Gruß
Nils Heiliger
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Donauradweg 1998: In 6 1/2 Tagen mit dem Fahrrad
von der Quelle bis nach Wien...
http://home.t-online.de/home/nils.heiliger/default.htm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Andreas Steffens schrieb:

Andreas Steffens

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
Hallo Nils,

> vielen Dank für Deine Bestätigung meines Problems...
> Die Aufgabenstellung ist das Aktualisieren von UserForm1 in Deinem gut
> gewählten Beispiel. Hat jemand eine Lösung?

ich dachte, Dir wäre die Lösung des Problems schon aus meinem Beispiel
klar geworden. Du mußt die Userform mit
unload me
schließen, bevor Du die zweite Userform darstellst, also der Code der
ersten Userform ist dann

Private Sub CommandButton1_Click()
Unload Me

UserForm2.Show
End Sub

Dann wird beim nächsten Userform1.Show auch wieder das
initialize-Ereignis ausgelöst.

HTH,
Andreas

Nils Heiliger

unread,
May 21, 1999, 3:00:00 AM5/21/99
to
Hallo Andreas,

Du hast recht, es funktioniert - vielen, vielen Dank!
Aber warum heißt das Objekt me und nicht UserForm1? Die
Online-Dokumentation gibt nicht her... - kannst Du zaubern?

Gruß
Nils Heiliger
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Donauradweg 1998: In 6 1/2 Tagen mit dem Fahrrad
von der Quelle bis nach Wien...
http://home.t-online.de/home/nils.heiliger/default.htm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Andreas Steffens schrieb:

Andreas Steffens

unread,
May 21, 1999, 3:00:00 AM5/21/99
to
Hallo Nils,

> Du hast recht, es funktioniert - vielen, vielen Dank!
> Aber warum heißt das Objekt me und nicht UserForm1? Die
> Online-Dokumentation gibt nicht her... - kannst Du zaubern?

Nö, ist doch in der Online-Hilfe dokumentiert (Visual-Basic Referenz).
Auch wenn der Hilfetext nicht gerade leichte Kost ist.
In Klassenmodulen steht Me immer für die zugehörige Instanz der Klasse.
Damit kannst Du leicht eine Referenz an andere Prozeduren weitergeben.
Siehe Online-Hilfe

HTH,
Andreas

0 new messages