Bonjour à tous,
Je souhaite récupérer l'objet Userform parent d'un control, j'ai créer des évènements de substitution mais je peux avoir plusieurs UserForm d'ouvert en même temps, et de mes événements il faut que je redirige vers le bon formulaire, je n'arrive à récupérer avec une fiabilité infaillible l'userform parent.
J'ai essayé de créer une fonction qui boucle vers l'élément parent est détecter si l'objet parent est un formulaire alors je le 'Set' et l'affecte à la fonction mais cela ne fonctionne pas tout le temps, est ce que vous avez une astuce pour récupérer le formulaire parent d'un contrôle ? j'ai essayé de regarder par les API , en récupérant le handle de celui ci mais je penses entamer une usine à gaz alors que je penses qu'il doit y avoir un moyen plus simple.
Voici l'exemple pour l'événement de substitution :
La fonction qui boucle, en supposant que le nom du formulaire commence par 'UF', mais je ne suis pas fan de la méthode:
J'ai essayé avec:
Merci
Je souhaite récupérer l'objet Userform parent d'un control, j'ai créer des évènements de substitution mais je peux avoir plusieurs UserForm d'ouvert en même temps, et de mes événements il faut que je redirige vers le bon formulaire, je n'arrive à récupérer avec une fiabilité infaillible l'userform parent.
J'ai essayé de créer une fonction qui boucle vers l'élément parent est détecter si l'objet parent est un formulaire alors je le 'Set' et l'affecte à la fonction mais cela ne fonctionne pas tout le temps, est ce que vous avez une astuce pour récupérer le formulaire parent d'un contrôle ? j'ai essayé de regarder par les API , en récupérant le handle de celui ci mais je penses entamer une usine à gaz alors que je penses qu'il doit y avoir un moyen plus simple.
Voici l'exemple pour l'événement de substitution :
VB:
Private Sub CText_Click()
Check_Txt_Parent(CText).Click_sur_TextBox CText.Caption, CText.Name
End Sub
La fonction qui boucle, en supposant que le nom du formulaire commence par 'UF', mais je ne suis pas fan de la méthode:
VB:
Function Check_Txt_Parent(ct As MSForms.Control)
Set Check_Txt_Parent = Nothing
On Error Resume Next
Set Check_Txt_Parent = ct.Parent
Do Until Check_Txt_Parent.Name Like "UF* "
If Check_Txt_Parent.Name Like "UF*" Then Exit Do
Set Check_Txt_Parent = Check_Txt_Parent.Parent
Loop
End Function
J'ai essayé avec:
mais le résultat est le nom de l'userformTypeName(Check_Txt_Parent)
Merci
Dernière édition: