Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Userform et événement

5 réponses
Avatar
JMH
Bonsoir

J'ai créé mon 1er Userform et dans l'événement "Initialise" je remplis
divers paramètres.
Je saisis des données et je valide par le boutonOK.

J'ai un traitement à faire après la validation et j'ai procédé comme suit:
Sub btnOK_Click
Userform.Hide

Mon traitement .......

End Sub

Ma question: Y'a t'il un événement sur la fermeture du UserForm qui me
permettrait d'y mettre mon traitement? Ou la solution ci-dessus est OK.

Merci d'avance pour vos réponses.

Jean-Michel H.

5 réponses

Avatar
Geo
Bonjour JMH


Bonsoir

J'ai créé mon 1er Userform et dans l'événement "Initialise" je remplis
divers paramètres.
Je saisis des données et je valide par le boutonOK.

J'ai un traitement à faire après la validation et j'ai procédé comme
suit: Sub btnOK_Click
Userform.Hide

Mon traitement .......

End Sub

Ma question: Y'a t'il un événement sur la fermeture du UserForm qui me
permettrait d'y mettre mon traitement? Ou la solution ci-dessus est
OK.


Ca me parait bon, c'est le clic sur le bouton qui va lancer le traitement,
d'ailleurs ta userform n'est que cachée.
Mais si tu poses la question c'est que tu a des soucis.
Pense à mettre un point d'arrêt par exemple à l'instruction qui suit hide,
tu passes en pas à pas et tu regardes.

--

A+

Avatar
JMH
Merci pour ta réponse.

Non pas de soucis, mais comme j'ai plutôt l'habitude de travailler avec
Access et ses formulaires, j'essaie de voir les similitudes.
Donc c'est OK pour moi.
A+
;-))


"Geo" a écrit dans le message de
news:
Bonjour JMH


Bonsoir

J'ai créé mon 1er Userform et dans l'événement "Initialise" je remplis
divers paramètres.
Je saisis des données et je valide par le boutonOK.

J'ai un traitement à faire après la validation et j'ai procédé comme
suit: Sub btnOK_Click
Userform.Hide

Mon traitement .......

End Sub

Ma question: Y'a t'il un événement sur la fermeture du UserForm qui me
permettrait d'y mettre mon traitement? Ou la solution ci-dessus est
OK.


Ca me parait bon, c'est le clic sur le bouton qui va lancer le traitement,
d'ailleurs ta userform n'est que cachée.
Mais si tu poses la question c'est que tu a des soucis.
Pense à mettre un point d'arrêt par exemple à l'instruction qui suit hide,
tu passes en pas à pas et tu regardes.

--

A+




Avatar
JMH
Je t'ai dis que je reviendrai. ;-))

Encore un truc:
L'événement Initialize ne se passe qu'une fois par Document?
Je m'aperçois que la boîte utilisée contient les éléments saisis lors d'un
1er appel de cette boîte, ce qui ne m'arrange pas.

Merci encore.


"Geo" a écrit dans le message de
news:
Bonjour JMH


Bonsoir

J'ai créé mon 1er Userform et dans l'événement "Initialise" je remplis
divers paramètres.
Je saisis des données et je valide par le boutonOK.

J'ai un traitement à faire après la validation et j'ai procédé comme
suit: Sub btnOK_Click
Userform.Hide

Mon traitement .......

End Sub

Ma question: Y'a t'il un événement sur la fermeture du UserForm qui me
permettrait d'y mettre mon traitement? Ou la solution ci-dessus est
OK.


Ca me parait bon, c'est le clic sur le bouton qui va lancer le traitement,
d'ailleurs ta userform n'est que cachée.
Mais si tu poses la question c'est que tu a des soucis.
Pense à mettre un point d'arrêt par exemple à l'instruction qui suit hide,
tu passes en pas à pas et tu regardes.

--

A+




Avatar
Anacoluthe
Bonjour !

'JMH' nous a écrit ...
L'événement Initialize ne se passe qu'une fois par Document?
Je m'aperçois que la boîte utilisée contient les éléments saisis lors d'un
1er appel de cette boîte, ce qui ne m'arrange pas.


L'événement Initialize est lancé quand votre objet Userform
est chargé Load , mais pas quand il est montré Show

Load : l'objet est chargé mais non visible
Show : l'objet est montré
Hide : l'objet est caché
Unload : l'objet est déchargé

La confusion vient du fait que VBA 'pour faire plus sympa'
exécute de lui-même automatiquement un Load avant
un Show (ou Hide) sur un objet qui n'a pas été chargé.

Si vous utilisez votre Userform en cycles
Show - Hide - Show - Hide etc...
Initialize n'est exécuté que la première fois

Si vous l'utilisez en cycles
Show - Unload - Show - Unload etc...
Initialize sera exécuté à chaque apparition

Voilà !

Anacoluthe
« L’oeuvre sort plus belle d’une forme
au travail rebelle. »
- Théophile GAUTIER

Avatar
JMH
OK. Merci pour cette réponse détaillée.


"Anacoluthe" a écrit dans le message de
news:O3$
Bonjour !

'JMH' nous a écrit ...
L'événement Initialize ne se passe qu'une fois par Document?
Je m'aperçois que la boîte utilisée contient les éléments saisis lors
d'un


1er appel de cette boîte, ce qui ne m'arrange pas.


L'événement Initialize est lancé quand votre objet Userform
est chargé Load , mais pas quand il est montré Show

Load : l'objet est chargé mais non visible
Show : l'objet est montré
Hide : l'objet est caché
Unload : l'objet est déchargé

La confusion vient du fait que VBA 'pour faire plus sympa'
exécute de lui-même automatiquement un Load avant
un Show (ou Hide) sur un objet qui n'a pas été chargé.

Si vous utilisez votre Userform en cycles
Show - Hide - Show - Hide etc...
Initialize n'est exécuté que la première fois

Si vous l'utilisez en cycles
Show - Unload - Show - Unload etc...
Initialize sera exécuté à chaque apparition

Voilà !

Anacoluthe
« L’oeuvre sort plus belle d’une forme
au travail rebelle. »
- Théophile GAUTIER