Macro de recherche qui affiche les pages trouvées
Résolu
luffy
-
luffy -
luffy -
Bonjour à tous,
J'ai trouvé sur le forum une macro qui correspond en partie à ma problématique qui est de retrouver en fonction d'une recherche dans une cellule, la ou les pages ou j'ai la même information (mot ou chiffre). Le code est le suivant :
Private Sub CommandButton1_Click()
' Parcourt les Feuilles de la 2ème à la dernière
For sh = 2 To Sheets.Count
With Sheets(sh).UsedRange
' recherche la valeur située en 'C7' sur la première feuille
Set t = .Find(Sheets(1).Range("c7").Value, LookIn:=xlValues)
If Not t Is Nothing Then
' Si la valeur est trouvée, alors
' Active la feuille contenant cette valeur
Sheets(sh).Activate
' Récupère l'adresse de la cellule trouvée et la selectionne
a = t.Address
.Range(a).Select
' Arrête la recherche
Exit Sub
End If
End With
Next
End Sub
Il est très bien mais ne m'affiche le résultat que sur une page.
S'avez vous comment si il trouve le resultat sur plusieurs page il peut me diriger vers elles et si possible directement sur la cellule ?
Par avance merci.
J'ai trouvé sur le forum une macro qui correspond en partie à ma problématique qui est de retrouver en fonction d'une recherche dans une cellule, la ou les pages ou j'ai la même information (mot ou chiffre). Le code est le suivant :
Private Sub CommandButton1_Click()
' Parcourt les Feuilles de la 2ème à la dernière
For sh = 2 To Sheets.Count
With Sheets(sh).UsedRange
' recherche la valeur située en 'C7' sur la première feuille
Set t = .Find(Sheets(1).Range("c7").Value, LookIn:=xlValues)
If Not t Is Nothing Then
' Si la valeur est trouvée, alors
' Active la feuille contenant cette valeur
Sheets(sh).Activate
' Récupère l'adresse de la cellule trouvée et la selectionne
a = t.Address
.Range(a).Select
' Arrête la recherche
Exit Sub
End If
End With
Next
End Sub
Il est très bien mais ne m'affiche le résultat que sur une page.
S'avez vous comment si il trouve le resultat sur plusieurs page il peut me diriger vers elles et si possible directement sur la cellule ?
Par avance merci.
1 réponse
-
Bonjour
La recherche s'arrête dès la première valeur trouvée (Exit Sub)
donc remplacer le Exist Sub par un message :
Msgbox("xxx") 'remplacer les xxx par le message à afficher dans la fenêtre
La recherche reprendra après avoir cliqué sur OK
De plus il ya un oubli dans le code :
pour se positionner sur la cellule trouvée il faut remplacer .Range(a).Select par ActiveSheet.Range(a).Select
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein