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 SubLa 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 FunctionJ'ai essayé avec:
mais le résultat est le nom de l'userformTypeName(Check_Txt_Parent)
Merci
			
				Dernière édition: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
	 
 
		