Re: => DEMO UserForm Récupérer données avec ComboBox et modifier les TexBox
Re Bonsoir JM, le Forum
En tant que développeur, il y a des conventions classiques à respecter, par exemple :
Supclient.nom.
Supclient.prenom
Supclient.adresse
Représentent des dénominations assez dérountantes, si on doit intervenir sur un code écrit de la sorte.
Exemple de convention :
With USF1_Client
.TxbClientNom
.TxbClientPrenom
.TxbClientAdresse
End With
Ce qui a pour avantage :
1) A la lecture du code on sait immédiatement si il s'agit d'ActiveX, ou d'autres Objects, ou encore de Variables...
2) On identifie immédiatement le Type d'ActiveX (Par exemple Txb = TextBox, Cbx = ComboBox, Cbx = CheckBox, Opb = OptionButton, etc etc)
3) On peut agir en masse sur ces Controls, exemple : on ne veut vider que les TextBox "Clients" :
Dim CTRL As Control
With USF1_Client
For Each CTRL In .Controls
If Left(CTRL.Name, 9) = "TxbClient" Then
CTRL.Value = ""
End If
Next
End With
Sinon, pour des applis simples et "légères" en code, on peut très bien se passer aussi de nommer les controls, si on a été logique en mode design, avec des TextBox1, TextBox2 et TextBox3 qui se suivent dans l'ordre...
Par ailleurs et selon les besoins, la numérotation des Controls offre l'avantage de pourvoir "jouer" facilement sur des boucles comme sur ma démo ci dessus :
Dim i As Integer
Dim x As Byte
i = Me.ComboBox1.ListIndex + 2
With Sheet1
For x = 1 To 3
Me.Controls("Textbox" & x) = .Cells(i, x)
Next
End With
Enfin, voilà, ce n'est pas catastrophique, c'est juste qu'il est plus facile de programmer lorsque l'on nomme bien ses Controls...
En espérant t'avoir éclairé...
Bonne Soirée
@+Thierry