Rechercher valeurs + boucle selection cellule

Bonjour à tous,

Je souhaite faire un moteur de recherche qui en cas de résultats multiples sélectionne tour à tour (par exemple avec un bouton "Next") les cellules dans lesquelles le résultats (ou partie du résultats) a été trouvé.

Exemple :

En A1 je rentre la valeur cherchée.

La valuer en question existe en C3 et F6

Je voudrais donc qu'en lançant la macro la cellule C3 soit sélectionnée.

Puis en appuyant sur le bouton "Next" la cellule F6

Etc etc

Quelqu'un aurait-il une idée ou un début de piste ?

Merci bcp

Bonjour,

Voici une piste parmi d'autres bien qu'Excel fournisse déjà un outil de recherche qui fonctionne comme tu le désire :

54rechercher.xlsm (20.48 Ko)

Bonsoir,

j'avais ceci, une recherche sur toutes les feuilles, mais avec la détermination d'une plage particulière :

@ bientôt

LouReeD

Un grand merci à tous les 2 c'est exactement ce que je cherchais. J'ai plus qu'à adapter.

@ Theze ,

Petite question sur ton fichier : c'est exactement ce que je cherche à faire sauf que ma cellule de recherche n'est pas "A1" mais "F14" et que je n'arrive pas a changer la zone de recherche (variable "DefPlage").

Je voudrais que la recherche ne se fasse qu'a partir de la ligne 19 colone "C "

Si tu peux me montrer comment faire ca ce serait top.

Merciiiii

Bonjour,

soit ta recherche doit comporter toute la feuille, dans ce cas, il te faut juste éviter de prendre en compte F14, alors voilà le code modifié :

Sub Chercher()

    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim I As Long

    Set Plage = DefPlage(ActiveSheet) 'L étant optionnel, ne pas l'indiquer revient à inscrire 1 pour la première ligne

    If Range("F14").Value = "" Then Exit Sub

    Erase Tbl(): J = 0

    Set Cel = Plage.Find(Range("F14").Value, , xlValues, xlPart)

    If Not Cel Is Nothing Then

        Adr = Cel.Address

        Do

            If Cel.Address(0, 0) <> "F14" Then 'évite la zone de recherche qui va obligatoirement faire partie du lot

                I = I + 1: ReDim Preserve Tbl(1 To I)
                Tbl(I) = Cel.Address

            End If

            Set Cel = Plage.FindNext(Cel)

        Loop While Cel.Address <> Adr

        Range(Tbl(1)).Select: J = 1

    End If

End Sub

et dans le cas où la recherche doit débuter sous F14 (donc, à partir de la ligne 15) dans ce cas, il te faut juste adapter l'argument optionnel "L" (pour Ligne) dans l'appel de la fonction DefPlage() de cette façon :

Sub Chercher()

    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim I As Long

    Set Plage = DefPlage(ActiveSheet, 15)  '<--- seulement à partir de la ligne 15

    If Range("F14").Value = "" Then Exit Sub

    Erase Tbl(): J = 0

    Set Cel = Plage.Find(Range("F14").Value, , xlValues, xlPart)

    If Not Cel Is Nothing Then

        Adr = Cel.Address

        Do

            I = I + 1: ReDim Preserve Tbl(1 To I)

            Tbl(I) = Cel.Address

            Set Cel = Plage.FindNext(Cel)

        Loop While Cel.Address <> Adr

        Range(Tbl(1)).Select: J = 1

    End If

End Sub
Rechercher des sujets similaires à "rechercher valeurs boucle selection"