Bonjour le forum,
J'aimerais effectué une recherche d'un terme dans un classeur en renvoyant certaines informations dans une userform. Pour cela j'ai écrit la macro suivante, qui fonctionne correctement :
Mais il est possible que le terme recherché soit inscrit plusieurs fois dans mon classeur Excel. Donc pour cela j'aimerais créer un bouton suivant qui méne à l'occurence suivante et qui nous renseigne comme pour la première recherche.
Malheureusement la macro suivante que j'ai écrite ne fonctionne pas au niveau du findNext
Si quelqu'un pourrait m'aider à identifier le problème je l'en remercie d'avance!
Je vous joins un fichier pour mieux comprendre
J'aimerais effectué une recherche d'un terme dans un classeur en renvoyant certaines informations dans une userform. Pour cela j'ai écrit la macro suivante, qui fonctionne correctement :
VB:
Public Wsh As Worksheet
Public cellule As Range
Public Valeur As String
Private Sub Recherche_Click()
Application.ScreenUpdating = False
Valeur = TextBox1.Value
If Valeur = "" Then
MsgBox "Vous n'avez pas indiqué de code AGI"
End If
If Valeur <> "" Then
For Each Wsh In ThisWorkbook.Worksheets
Set cellule = Wsh.Cells.Find(Valeur)
If Not cellule Is Nothing Then
Label1.Caption = "Produit enregistré"
Wsh.Activate
ligne = cellule.Row
colonne = cellule.Column
Label2.Caption = Cells(ligne, colonne - 5).Value
Label3.Caption = ActiveSheet.Name
Sheets("Accueil").Select
GoTo Sortir
Else
Label1.Caption = "Produit non enregistré"
Label2.Caption = ""
Label3.Caption = ""
End If
Next
End If
Sortir:
Application.ScreenUpdating = True
End Sub
Mais il est possible que le terme recherché soit inscrit plusieurs fois dans mon classeur Excel. Donc pour cela j'aimerais créer un bouton suivant qui méne à l'occurence suivante et qui nous renseigne comme pour la première recherche.
Malheureusement la macro suivante que j'ai écrite ne fonctionne pas au niveau du findNext
VB:
Private Sub Suivant_Click()
Application.ScreenUpdating = False
Valeur = TextBox1.Value
If Valeur = "" Then
MsgBox "Vous n'avez pas indiqué de code AGI"
End If
If Valeur <> "" Then
For Each Wsh In ThisWorkbook.Worksheets
Set cellule = Wsh.Cells.FindNext(cellule)
If Not cellule Is Nothing Then
Label1.Caption = "Produit enregistré"
Wsh.Activate
ligne = cellule.Row
colonne = cellule.Column
Label2.Caption = Cells(ligne, colonne - 5).Value
Label3.Caption = ActiveSheet.Name
Sheets("Accueil").Select
GoTo Sortir
Else
Label1.Caption = "Produit non enregistré"
Label2.Caption = ""
Label3.Caption = ""
End If
Next
End If
Sortir:
Application.ScreenUpdating = True
End Sub
Si quelqu'un pourrait m'aider à identifier le problème je l'en remercie d'avance!
Je vous joins un fichier pour mieux comprendre
Pièces jointes
Dernière édition: