Bonjour à tous,
je commence à me débrouiller avec VBA, mais j'ai toujours des soucies avec ma fonction find et sa boucle.
j'ai un useform pour effectuer une recherche dans mon tableau, on y sélectionne la colonne à fouiller, puis on tape le mot clée.
on lance la recherche et une msgbox apparait pour nous demander si la cellule trouvée nous convient, si oui tant mieux, sinon la recherche continue jusqu’à la prochaine cellule et là est mon problème.
quand le programme arrive à la fin de la colonne choisie, il passe sur une cellule correspondant à la recherche, mais sur une autre colonne, puis il recommence sur la colonne choisie aumais en "oubliant " la 1ere cellule correspondant à la recherche
voici le code:
et le fichier en xls
je commence à me débrouiller avec VBA, mais j'ai toujours des soucies avec ma fonction find et sa boucle.
j'ai un useform pour effectuer une recherche dans mon tableau, on y sélectionne la colonne à fouiller, puis on tape le mot clée.
on lance la recherche et une msgbox apparait pour nous demander si la cellule trouvée nous convient, si oui tant mieux, sinon la recherche continue jusqu’à la prochaine cellule et là est mon problème.
quand le programme arrive à la fin de la colonne choisie, il passe sur une cellule correspondant à la recherche, mais sur une autre colonne, puis il recommence sur la colonne choisie aumais en "oubliant " la 1ere cellule correspondant à la recherche
voici le code:
Code:
Private Sub go_bouton_Click()
i = what_list.ListIndex
Dim colonne As String
colonne = Sheets("liste").Cells(i + 2, 4).Value
Dim valeur As String
valeur = word_box
With Sheets("teste").Columns(colonne)
ActiveSheet.Cells.Find(What:=valeur, After:=Cells(5, colonne), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Activate
End With
Response1 = MsgBox("c'est bon ?", vbInformation + vbYesNo)
If Response1 = vbYes Then
Exit Sub
Else
Do While Response1 = vbNo
With Sheets("teste").Columns(colonne)
X = ActiveCell.Row
ActiveSheet.Cells.Find(What:=valeur, After:=Cells(X, colonne), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
'Cells.FindNext(After:=Cells(6, colonne)).Activate
End With
Response1 = MsgBox("et mainteneant ?", vbInformation + vbYesNo)
Loop
End If
Exit Sub
End Sub
et le fichier en xls