Macro rechercher plusieurs résultats

Résolu/Fermé
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 - 14 avril 2020 à 10:31
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 - 20 avril 2020 à 14:46
Bonjour,
Dans ma colonne B j'ai différents nom d'espèces d'oiseaux et certaines espèces sont marquées plusieurs fois. Ces noms d'espèces me renvoi à d'autres informations.
Je désire faire une macro qui recherche le nom de l'espèce indiquée dans la colonne B en ayant la possibillitée de passer au résultat suivant si ce n'est pas le bon.
J'arrive a effectuer la recherche mais celle-ci n'affiche que le premier résultat correspondant et pas la possibillitée de continuer la recherche dans les autres lignes de la colonne B contenant le même nom d'espèce.
J'ai également remarqué qu'en cas de nom d'espèce inexistant dans mon tableau le message de sécurité ne fonctionne pas (il me dis qu'il a trouvé l'espèce et n'affiche pas de résultat).
Merci pour votre aide.

Voici ma macro :

'Définition de la variable à rechercher
Mot = InputBox("Saisir l'espèce à chercher. ", Title:="Recherche Espèce")
'Vérification si existante
If Mot = "" Then Exit Sub
For Each Ws In Worksheets
Nbre = Nbre + Application.CountIf(Ws.UsedRange, "=" & Mot)
Next Ws
'Message en cas de mot inexistant
If Nbre = 0 Then
MyValue = MsgBox(" L'espèce " & Mot & " n'est pas enregistrée ", vbOKOnly, " Recherche Espèce ")
Else
Cycle = 0
'Recherche et arrêt sur les cellules contenant le Mot
For Each Ws In Worksheets
With ActiveSheet
.Activate
Set Trouvé = Ws.Columns(2).Find(Mot, , xlValues, xlWhole)
If Not Trouvé Is Nothing Then
CellAddress = Trouvé.Address
Do
Ws.Activate
Trouvé.Select
MyValue = MsgBox(" L'espèce " & Mot & " a été trouvée ", vbOKOnly, " Recherche Espèce ")
A voir également:

3 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
14 avril 2020 à 10:50
Bonjour,

Votre code est incomplet. Soit vous n'avez pas tout mis a dispo, soit impossible que ca "marche".
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023
14 avril 2020 à 11:49
Je n'est pas mis tout le code car j'effectue d'autres actions. Voici le code complet :


Sub RechercheParEspècesExotiques()


Dim Mot As String
Dim Ws As Object
Dim Nbre As Long
Dim Cycle As Long
Dim Trouvé As Range
Dim CellAddress As Variant
Dim MyValue As String

'remets colonnes A-Q en blanc
Columns("A:Q").Select
With Selection.EntireRow.Columns("A:Q").Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'remet colonnes A-Q ligne titre en gris
Range("A4:Q6").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.249946592608417
.PatternTintAndShade = 0
End With

'Définition de la variable à rechercher
Mot = InputBox("Saisir l'espèce à chercher. ", Title:="Recherche Espèce")
'Vérification si existante
If Mot = "" Then Exit Sub
For Each Ws In Worksheets
Nbre = Nbre + Application.CountIf(Ws.UsedRange, "=" & Mot)
Next Ws
'Message en cas de mot inexistant
If Nbre = 0 Then
MyValue = MsgBox(" L'espèce " & Mot & " n'est pas enregistrée ", vbOKOnly, " Recherche Espèce ")
Else
Cycle = 0
'Recherche et arrêt sur les cellules contenant le Mot
For Each Ws In Worksheets
With ActiveSheet
.Activate
Set Trouvé = Ws.Columns(2).Find(Mot, , xlValues, xlWhole)
If Not Trouvé Is Nothing Then
CellAddress = Trouvé.Address
Do
Ws.Activate
Trouvé.Select
MyValue = MsgBox(" L'espèce " & Mot & " a été trouvée ", vbOKOnly, " Recherche Espèce ")
'colorier la case du résultat en vert
With Selection.EntireRow.Columns("A:Q").Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Exit Sub

If MyValue = vbNo Then Exit For
Set Trouvé = Ws.Columns(2).FindNext(After:=Trouvé)

Loop While Not Trouvé Is Nothing And Trouvé.Address <> CellAddress

End If

End With
Next Ws
End If

End Sub
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023
14 avril 2020 à 17:56
Re,

Le
Exit Sub
interpelle car le code en dessous ne sert rien
Et ceci encore plus en enlevant Exit Sub:
If MyValue = vbNo Then Exit For
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
15 avril 2020 à 10:23
Merci, cela fonctionne.
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
19 avril 2020 à 14:03
J'ai un soucis avec ma fonction recherche car lorsque j'effectu une recherche celle-ci se fait sur toutes les feuilles de mon classeur (feuille masquée ou affichée). j'aimerais que la recherche s'effectue uniquement sur la feuille active "Registre Exotique". Peux-tu m'aider car je ne trouve pas l'erreur dans mon code.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
14 avril 2020 à 11:19
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
19 avril 2020 à 17:13
Bonjour,

celle-ci se fait sur toutes les feuilles
Ben, qui a ecrit ceci:
'Recherche et arrêt sur les cellules contenant le Mot 
For Each Ws In Worksheets 
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023
19 avril 2020 à 17:26
Le code a été fait par moi j'ai essayer avec activesheets sans résultats.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023
Modifié le 19 avril 2020 à 17:49
Re,
Vous voulez une recherche uniquement sur la feuille "Registre Exotique" colonne B?

Au debut de votre code, la couleur Blanche et grise est sur cette feuille?
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
19 avril 2020 à 17:49
Oui exactement juste effectuer la recherche sur la feuille "Registre Exotique" colonne B
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023
19 avril 2020 à 17:52
Tout a fait Thierry,
Pour les couleurs du debut??
0
volfoss Messages postés 31 Date d'inscription jeudi 21 juillet 2016 Statut Membre Dernière intervention 15 octobre 2023 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
Modifié le 19 avril 2020 à 18:02
Les changements de couleurs fonctionnent cest juste la recherche sur la feuille active Registre Exotique colonne B qui me pose soucis
0