Voila mon problème, je souhaite créer un sub générique que je vais utiliser plusieurs fois afin de ne pas réécrire la même procédure à chaque fois.
Ce sub doit me permettre de masquer un contrôle dans un Userform. Seulement je n'utilise pas qu'un seul userform donc je récupère le nom du userform et du controle en variable.
Voici le code que j'ai écrit mais je n'arrive pas à le faire fonctionner. Je ne sais pas comment faire pour qu'il considère le Userform en tant que tel.
Code:
Sub Test
If TextBox4.Value <> "" Then
HideControl UserForm3.Name, TextBox1.Name
End If
avec
Sub HideControl(USF, Controle)
VBA.UserForms(USF).Controls(Controle).Enabled = False
End Sub
Re : Comment modifier une textBox ds un UserForm dont le nom est contenu dans une var
Bonjour,
Essayez la démarche suivante
1) Créez un UserForm1 avec une TextBox1 et un CommandButton1
Copiez le code suivant dans sa fenêtre de code
Code:
Private Sub UserForm_Activate()
Set USF1 = Me
Me.Left = 100
End Sub
2) Créez un UserForm2 avec une TextBox4 et un CommandButton1
Copiez le code suivant dans sa fenêtre de code
Code:
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim bool As Boolean
If Me.Controls("TextBox4") <> "" Then
bool = False
Else
bool = True
End If
Call HideControl(USF1.Controls("TextBox1"), bool)
End Sub
Private Sub UserForm_Activate()
Me.Left = 350
End Sub
3) Dans un module Standard, copiez le code suivant
Code:
Public USF1 As UserForm
Sub UserFormsOpen()
UserForm1.Show vbModeless
UserForm2.Show vbModeless
End Sub
Sub HideControl(Ctrl As MSForms.Control, Masque As Boolean)
Ctrl.Enabled = Masque
End Sub
Lancez l'ouverture des UserForms par la macro UserFormsOpen().
Si la TextBox4 de UserForm2 n'est pas vide alors la TextBox1 de UserForm1 a sa propriété Enabled sur Faux (et réciproquement).
Pièces jointes
Modifier une propriété d'un UserForm.Control à partir d'un autre UserForm.xlsm