Salut Marabbeh et le Forum
Bonne Question ! La différence est simple... Mais encore faut-il savoir l'expliquer...
La Procédure placée dans l'évènement "Initialize" ne se fait que par les instructions au premier lancement du UserForm... (ou après évidemment l'instruction Unload UserForm)
Une Initialize peut être obtenu directement par des instructions comme suit :
Load UserformX (ou) UserFormX.Show (ou) UserFormX.LabelX.Caption = "Toto"... (à noter que le simple fait de faire écrire par VBA quelque chose dans un des Controls du UserForm suffit à le charger en mémoire et donc de le faire Initialiser)
La Procédure placée dans l'évènement "Activate" se fera à chaque fois que l'on utilisera UserForm.Show (après une instruction UserFormX.Hide)
Bien sur il faut entendre que lors du premier lancement d'un UserForm l'évèvement Initialize se déroule... Puis l'évènement Activate se déroule aussi...
Par contre donc, si l'on fait juste UserForm.Hide (donc le UserForm est toujours gardé en memoire avec les changements éventuels que le User a pu faire) et que l'on lance une instruction UserFormX.Show, à ce moment là seuls les instructions placées dans l'évènement Activate s'exécuteront... Et par conséquent pas celles placées dans l'évènement "Initialize"...
Voilà, c'est une nuance très importante... J'espère avoir été clair ? (Interro demain !! lol)
Bon App
@+Thierry