Bonsoir,
le "soucis" c'est la manière dont vous faites le teste sur le bouton suivant :
If UCase(Left(c.Value, Len(Me.TextBox1))) = UCase(Me.TextBox1.Value) Then 'condition : si les premiers caractères correspondent (indépendamment de la casse)
' MsgBox c.Row - 1 & " : " & c.Value ' le MsgBox fonctionne
Me.ScrollBar1 = c.Row - 1 ' affiche la valeur de la cellule dans le textBox1 en regard du ScrollBar1
End If
ici vous testez si les premières lettres de la cellule colonne 1 sont = aux lettres entrées dans le textbox1. Ceci dans une boucle.
Pour le premier "passage" le test est égal, on incrémente la scrollbar, qui prend par exemple la valeur 3 au lieu de 1.
Cela crée un "changement" de valeur de la scrollbar qui lance la procédure suivante :
r = Me.ScrollBar1.Value + 1 'Si r =1 ->Se positionne sur la 3 ème ligne (1ère ligne du Tableau)
For i = 1 To 3
Me("TextBox" & i).Value = Ws.Cells(r, i).Value 'Affiche les données de la colonne 1 dans la TextBox1
Next i
suite au changement du scrollbar, les valeurs "adéquate" sont affichées dans les trois textbox => tout est OK pour le premier passage.
Retour sur la boucle de la colonne de nom, et là "forcément" le test suivant n'est plus "VRAI"
If UCase(Left(c.Value, Len(Me.TextBox1))) = UCase(Me.TextBox1.Value) Then
En effet vous testez si les noms suivant sont égal à "Lemoine", la boucle se finie et on a bien trouvé le premier nom commençant par L.
Vous cliquez sur le bouton suivant, vous lancer un deuxième passage sur le code suivant :
If UCase(Left(c.Value, Len(Me.TextBox1))) = UCase(Me.TextBox1.Value) Then 'condition : si les premiers caractères correspondent (indépendamment de la casse)
' MsgBox c.Row - 1 & " : " & c.Value ' le MsgBox fonctionne
Me.ScrollBar1 = c.Row - 1 ' affiche la valeur de la cellule dans le textBox1 en regard du ScrollBar1
End If
Ici on se retrouve comme lors du retour sur la boucle, aucun autre nom est égal Lemoine si ce n'est Lemoine, puisqu'il n'y a pas en mémoire la position de la dernière réponse. Donc on retombe encore et encore sur Lemoine, donc les trois textbox reste sur les valeurs précédemment trouvées... etc, etc...
Il vous faut revoir tout le cheminement de votre procédure, et pour info la recherche d'Excel dissocie le textbox de recherche et la valeur trouvée, qui n'est autre que la cellule correspondante, hors vous dans votre projet le résultat de la recherche devient le critère de la recherche suivant, donc la recherche se termine...
@ bientôt
LouReeD