XL 2010 3 Userform, seul le Userform1 qui s'initialise

Titof06

XLDnaute Nouveau
Bonjour,

J'utilise 3 Userform qui s'ouvre selon les éléments du premier.

Mon problème est que seulement Userform1 s'initialise correctement à l'ouverture, les 2 autres ne s'initialisent pas.
J'ai ajouté un msgbox "init_uf2" dans la sub_initialize de UF2, mais rien ne s'affiche.....:(

En fait, il n'y a pas d'initialisation de mon UF2 & UF3 à l'ouverture, donc la suite de mon code ne suit pas et me provoque des erreurs.

Est-ce que quelqu'un aurait une solution, svp ?

Par avance Merci :)

Bonne Journée,

Titof06
 

Titof06

XLDnaute Nouveau
Bonjour Dranreb,

Merci pour cette réponse.

Je vais être plus précis.
Je ne veux pas le mettre en 'dur' dans les propriétés, car selon la valeur du 1er userform, je cherche à modifier la liste d'une ComboBox pour les 2 autres Userform.

Par exemple :
- si choix "A" dans USF1 => Combobox USF2 dans feuil1 plage A1:C10 + Combobox USF3 dans feuil2 plage D1:F20
- si choix "B" dans USF1 => Combobox USF2 dans feuil1 plage G1:H10 + Combobox USF3 dans feuil2 plage I1:K40

Voilà mon souci, c'est pour cela que je pensais le faire avec la fonction Initialize à l'ouverture de chaque USF

Merci :)

Bonne Journée,

Titof06
 

Dranreb

XLDnaute Barbatruc
Moi je pense que ce serait plus simple avec un seul UserForm
Mais bon… Ça ne me semble pas judicieux de le faire dans les UserForm_Initialize.
Moi je leur écrirais des méthodes car je n'aime pas piloter des contrôles d'un UserForm depuis un autre UserForm, mais ils sont Public, après tout, et on peut donc quand même le faire. Et tout ce qui est Public dans un UserForm n'est que méthodes et propriétés de l'objet dérivé (c'est à dire l'objet dont le nom de type est en même temps son nom Public, et non pas toujours UserForm contrairement à tous ses évènements interne quel que soit son nom Public) .
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Je pourrais surement vous le dire si je pouvais voir le classeur.
Vos procédures s'appellent bien toute UserForm_Initialize dans tous les UserForm ? C'est une erreur assez classique de beaucoup de débutants croyant devoir les appeler différemment dans les différent UserForm: UserForm2_Initialize, UserForm3_Initialize etc. Ça ne peut pas marcher avec ces noms.
 

Titof06

XLDnaute Nouveau
Bonjour Dranreb,

Etant débutant en Vba Excel, j'ai fait avec les 2 cas énoncés.
La 1ère fois pour chacun de mes USF, j'avais mis Userform_Initialize.
La 2ème fois pour chacun de mes USF, j'avais mis le numéro en plus Userform1_Initialize, etc.

Dans les 2 cas, j'avais mis un MsgBox dans la procédure Initialize, mais jamais le MsgBox ne s'est affiché.

J'ai donc opté sur un UserForm unique avec plusieurs ComboBox comme vous me l'avez suggéré.

Merci encore pour votre aide.

Bonne Journée,

Titof06 :)
 

Dranreb

XLDnaute Barbatruc
Bonjour.
La Userform_Initialize ne s'exécute qu'une fois, au chargement de l'objet. Donc plus après une invocation à sa méthode Hide. Après Unload de l'objet, oui. Ce qui s'exécute à shaque .Show, que son chargement préalable soit nécessaire ou non, c'est une UserForm_Activate.
 

Discussions similaires

Réponses
39
Affichages
3 K

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu