Recherche nom userform parent d'un controle

Bonjour a tous,

Dans le fichier ci-dessous, j'ai crée plusieurs userforms me permettant d’afficher "dynamiquement" de la somme de valeurs renvoyées par des groupes d'optionbuttons ou de checkbox.

22test.xlsm (26.59 Ko)

Pour cela, j'ai regroupé ces optionsbuttons et checkbox dans un module de classe, et permet le lancement d'une procédure évènementielle lorsqu'un de ces contrôles est sélectionnés.

Après quelque recherche sur le net, j'ai pu trouvé quelquchose qui fonctionne lorsque les optionbuttons/checkbox sont uniquement dans des frames. (cf. userform1)

Par contre lorsque ces contrôles sont dans un multipage, la procédure évènementielle plante... (cf. userform 2). La fonction permettant de retrouver le nom de l'userform s'arrete au nom de la page du mutlipage et non jusqu'au nom de l'userform....

Private Function getParentForm(pcontrol As Control) As Object

If TypeOf pcontrol.parent Is Frame Or TypeOf pcontrol.parent Is Page Or TypeOf pcontrol.parent Is MultiPage Then
    Set getParentForm = getParentForm(pcontrol.parent)
Else
     Set getParentForm = pcontrol.parent
End If

End Function

je ne comprend pas pourquoi... Quelqu'un pourrait m'éclairer sur la raison de ce plantage ? et m'aider a résoudre ce problème?

merci de votre temps

Bonjour,

Oulala !

Pas besoin de se compliquer la vie. Regarde en pièce jointe.

A+

merci galopin,

mais ton code n'est applicable que pour l'USF2.

Dans mon cas j'ai plusieurs userforms, et je souhaiterai que l'evenement du module de classe soit applicable a tous ces userforms, d'ou la nécessite de rechercher le nom de l'userform actif

par contre il est vrai que l'utilisation d'un tableau plutôt qu'une collection est plus facile pour regrouper mes controles

Je me demande bien à quoi va te servir ce deuxième Userform : Le multipage te suffit pas

Tu peux déclarer une autre série d'OptionButton qui s'appelleront différemment :

Au lieu de les appeler "OptionButton1", "OptionButton2"...

Ceux qui s'appelleront "Opt1", "Opt2" feront forcément partie de l'autre Userform...

A+

et non, j'ai besoin de plusieurs userform ( env. 10 meme...)

chaque usf est different car est dédié à un choix de controles correspondant a des données d'une base de données. Tantôt ces données sont facultatives (chekcbox), tantôt obligatoires (optionbuttons).

Le multipage dans les userform n'est pas obligatoire mais permet de gagner en lisiblité pour l'utilisateur

Eh bien tu les numérotes de 1 à 100 sachant que ceux du USF1 s'appelleront OptionBouton1 à OptionBouton10 par exemple,

Ceux du USF2 s'appelleront OptionBouton11 à OptionBouton20...

Rechercher des sujets similaires à "recherche nom userform parent controle"