Macro rechercher plusieurs résultats

Résolu
volfoss Messages postés 43 Statut Membre -  
volfoss Messages postés 43 Statut Membre -
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 ")

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Votre code est incomplet. Soit vous n'avez pas tout mis a dispo, soit impossible que ca "marche".
    0
    1. volfoss Messages postés 43 Statut Membre 3
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > volfoss Messages postés 43 Statut Membre
         
        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
      2. volfoss Messages postés 43 Statut Membre 3 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Merci, cela fonctionne.
        0
      3. volfoss Messages postés 43 Statut Membre 3 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. volfoss Messages postés 43 Statut Membre 3
       
      Le code a été fait par moi j'ai essayer avec activesheets sans résultats.
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > volfoss Messages postés 43 Statut Membre
       
      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
    3. volfoss Messages postés 43 Statut Membre 3 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Oui exactement juste effectuer la recherche sur la feuille "Registre Exotique" colonne B
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > volfoss Messages postés 43 Statut Membre
       
      Tout a fait Thierry,
      Pour les couleurs du debut??
      0
    5. volfoss Messages postés 43 Statut Membre 3 > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
       
      Les changements de couleurs fonctionnent cest juste la recherche sur la feuille active Registre Exotique colonne B qui me pose soucis
      0