Rechercher sur plusieurs feuilles et afficher le résultat

Bonjour,

Après quelques jours de recherches je commence à arriver dans une impasse car je ne trouve pas ce que je veux.

Est il possible de créer une macro qui effectue une recherche dans plusieurs feuilles du même classeur ?

Plus précisément j’aimerai qu’en rentrant une valeur dans une zone de texte et en cliquant sur un bouton valider la macro cherche dans toutes mes feuilles, et quand il trouve la valeur il ouvre la feuille en mettant en surbrillance cette valeur. Si il trouve pas un petit message disant que ça existe pas (ça c’est pas trop difficile je sais) et à la fin enlever la surbrillance quand j’ai fini ma recherche.

Est ce que cela est possible ou pas ?

J'ai commencé a faire des tests avec un bouton de commande et une inputbox pour m'entrainer mais pour effectuer la recherche multiple je coince.

Je joint mon fichier pour plus de compréhension (mon fichier n'est pas terminé et je voudrai effectuer ma recherche en fonction de la colonne identification)

Merci d’avance de votre aide et réponse

Bonjour,

quelques questions :

Si j'ai bien compris, c'est le "code GMAO" qui doit être cherché ? Il doit être cherché dans quel élément de tes tableaux ? La colonne "Identification" ? ou n'importe quelle colonne ?

Ensuite, est-ce que ce code peut être présent à plusieurs endroits ? Si oui, faut-il tous les retourner, ou retourner que le premier ?

Bonjour SebastienChu, le forum,

Une proposition à tester ....mais ce n'est pas exactement ce que tu cherches...

Private Sub CommandButton1_Click()
  Dim resultat As String
  Dim ws As Worksheet
  Dim msg As String
  Dim plage As Range, cells  As Range

    resultat = InputBox("Entrez le code GMAO a 7 chiffres", "Recherche par GMAO")

    For Each ws In Worksheets
     Set plage = ws.Range("F2:F" & ws.Range("F" & Rows.Count).End(xlUp).Row)
     If ws.Name <> "Recherche" Then
      For Each cells In plage
       If cells Like resultat Then msg = msg & "Correspondance sur feuille  " & ws.Name & "  en  " & cells.Address & Chr(10)
      Next cells
     End If
    Next ws
     If msg = "" Then
      MsgBox "Aucune correspondance trouvée avec le code   " & resultat
     Else
      MsgBox msg
     End If
End Sub

Cordialement,

Bonjour Melch,

Alors en effet le code GMAO est la colonne identification des toutes mes feuilles et il est unique dans tout mes equipements.

Merci xorsankukai je vais tester deja ce code et voir ce que ca donne.

Melch si tu veux d'autres informations hesite pas

Le code de xorsankukai est tres bien sur la recherche ce qui manque juste c'est que au lieu de l'afficher dans une msgbox j'aimerai ouvrir la feuille correspondante et selectionner la ligne.

Cela doit etre possible ?

Merciiii

Re,

Un autre essai....

Private Sub CommandButton1_Click()
  Dim resultat As String
  Dim ws As Worksheet
  Dim plage As Range, cells  As Range

    resultat = InputBox("Entrez le code GMAO a 7 chiffres", "Recherche par GMAO")

    For Each ws In Worksheets
     Set plage = ws.Range("F2:F" & ws.Range("F" & Rows.Count).End(xlUp).Row)
     If ws.Name <> "Recherche" Then
      For Each cells In plage
       If cells Like resultat Then
             ws.Select
          cells.Select
       End If
      Next cells
     End If
    Next ws
End Sub

cordialement,

Merci beaucoup Xorsankukai c'est parfait

Tu es mon heros de la journée

Re bonjour

Deja encore merci a Xor le dernier code fonctionne a la perfection.

Je voulais savoir si il etait possible d'ajouter a ce code un msgbox que si il ne trouve pas l'identification?

J'ai essayé de le mettre a plusieurs endroits mais ou il me l'afiche jamais meme si il le trouve pas ou alors il me l'affiche tout le temps qu'il trouve ou pas le numero.

Merci d'avance

Bonjour,

j'ai repris le code de xorsankukai

Private Sub CommandButton1_Click()
  Dim resultat As String
  Dim ws As Worksheet
  Dim plage As Range, cells  As Range
  Dim trouve As Boolean
    trouve = False
    resultat = InputBox("Entrez le code GMAO a 7 chiffres", "Recherche par GMAO")

    For Each ws In Worksheets
     Set plage = ws.Range("F2:F" & ws.Range("F" & Rows.Count).End(xlUp).Row)
     If ws.Name <> "Recherche" Then
      For Each cells In plage
       If cells Like resultat Then
             ws.Select
          cells.Select
          trouve = True
       End If
      Next cells
     End If
    Next ws
    If Not trouve Then MsgBox "Le code n'a pas été trouvé"
End Sub

Merci beaucoup Melch

E j'ai aussi compris mon erreur j'avais pas du tout fait du boolean quand j'ai créé une variable

Rechercher des sujets similaires à "rechercher feuilles afficher resultat"