Private Sub TextBox5_Change() 'au changement dans la Textbox
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim NC As Byte 'déclare la variable NC (Nombre de caractères)
[/COLOR]
[COLOR=#000000]
Call effac 'lance la procédure [effac]
If Me.TextBox5.Value = "" Then Exit Sub 'si la Textbox5 est effacée, sort de la procédure
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
NC = Len(TextBox5.Value) 'définit le nombre de caracteres NC
For I = 2 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
'condition : si le texte édié correspond aux premiers caractères du nom ou du prénom (convertis en majuscule)
If UCase(Me.TextBox5.Value) = UCase(Left(TV(I, 1), NC)) Or UCase(Me.TextBox5.Value) = UCase(Left(TV(I, 2), NC)) Then
For J = 1 To 4 'boucle 2 sur les 4 colonnes du tableau des valeurs TV
Me.Controls("TextBox" & J).Value = TV(I, J) 'alimente la TextBox avec la valeur correspondante
Next J 'prochaine colonne de la boucle 2
End If 'fin de la condition
Next I 'prochane ligne de la boucle 1
End Sub
[/COLOR]
[COLOR=#000000]
Public Sub effac() 'procédure d'effacement
Dim I As Byte 'déclare la variable I (Incrément)
For I = 1 To 4 'boucle sur les 4 textboxes
UserForm1.Controls("Textbox" & I).Value = "" 'efface la textbox de la boucle
Next I 'prochaine textbox de la boucle
End Sub