Recharger les contrôles d'un userform

Bonjour à tous.

J'utilise le code suivant pour valider ma saisie. Le problème je voudrais qu'à travers le choix dans le premier contrôle (ComboBox1) les autres soient rechargés par les valeurs déjà saisies pour que je puisse modifier. Je demande votre aide pour pour modifier le code. Merci d'avance.

code.

Private Sub CommandButton4_Click()
'--- Contrôles
If Me.ComboBox1 = "" Then
MsgBox "Saisir un numéro matricule !"
Me.ComboBox1.SetFocus
Exit Sub
End If
If Me.ComboBox2 = "" Then
MsgBox "Choisir le sexe de l'élève !"
Me.ComboBox2.SetFocus
Exit Sub
End If
If Me.TextBox1 = "" Then
MsgBox "Saisir le nom de l'élève !"
Me.TextBox1.SetFocus
Exit Sub
End If
If Me.TextBox2 = "" Then
MsgBox "Saisir le prénom de l'élève !"
Me.TextBox2.SetFocus
Exit Sub
End If

'--- Positionnement dans la base
ligne = Sheets("identite").[A65000].End(xlUp).Row + 1
'--- Transfert Formulaire dans identite
Sheets("identite").Cells(ligne, 1) = Application.Proper(Me.ComboBox1)
Sheets("identite").Cells(ligne, 2) = Me.ComboBox2
Sheets("identite").Cells(ligne, 3) = Me.TextBox1
Sheets("identite").Cells(ligne, 4) = Me.TextBox2
Sheets("identite").Cells(ligne, 5) = Me.TextBox3
Sheets("identite").Cells(ligne, 6) = Me.TextBox4
Sheets("identite").Cells(ligne, 7) = Me.TextBox5
Sheets("identite").Cells(ligne, 8) = Me.TextBox6
Sheets("identite").Cells(ligne, 9) = Me.TextBox7
Sheets("identite").Cells(ligne, 10) = Me.TextBox8
Sheets("identite").Cells(ligne, 11) = Me.TextBox9
Dim c As Control
For Each c In Me.Controls
Select Case TypeName(c)
Case "TextBox"
c.Value = ""
Case "ComboBox"
c.Value = ""
End Select
Next c
End Sub

Bonjour

Il faut utiliser combobox1.change, faire une recherche de sa valeur en colonne 1 de votre base de données, le find peut être une solution, ce qui renvoie un objet Range= à la cellule qui contient la valeur, ensuite pour remplir les différentes textbox un "offset" de ce range en colonne suffit pour renvoyer ces données.

@ bientôt

LouReeD

Bonsoir. Merci bien pour l'explication. Je suis un nouveau apprenant d'Excel donc ce que je peux faire avec TextBox_change c'est seulement modifier le format de saisie. Si vous pouviez aller plus loin dans l'explication. Je n'ai pas idée de comment ça se passe. Merci

Bonjour tout le monde,

Je crois que vous faites une erreur et qu'elle se situe au niveau de la conception.

la valeur que vous affectez à la variable ligne correspond à la 1ère ligne vide, donc à un nouvel enregistrement. Et vous dites que vous voulez modifier une ligne. Ca ne va pas ensemble.

Je crois qu'il vaudrait mieux se dire : il s'agit par défaut d'un nouvel enregistrement sauf si le n° matricule existe déjà. Dans ce cas, on remplit les textbox avec le contenu de la ligne trouvée, sinon on ajoute le nouvel enregistrement.
Etudiez ce petit exemple :

16eleves.xlsm (37.70 Ko)

Attention : la propriété Combobox1.MatchEntry doit être à 2 (None).

Bonsoir à tous. Merci beaucoup LouReeD pour le soutien.

Rechercher des sujets similaires à "recharger controles userform"