Recherche dans feuil

Bonjour

J'ai 4 feuilles.

Dans la 1ère, je voudrais faire une recherche de donnée(unique) sur les 3 autres feuilles.

Recherche uniquement dans la colonne 1.

Une fois ma donnée trouvée dans une des 3 feuilles, je me place dessus dans la feuille.

Est ce réalisable ?

Exemple : je recherche la donnée H42 dans les 3 autres feuilles. une fois cette donnée trouvé, je me place dans la feuille concerné

Bonjour,

Un essai sans garantie, car toujours compliqué de répondre sans fichier

Sub test()

Dim X As Variant
Dim N As Integer
Dim plage As Range

X = "H42"
N = ThisWorkbook.Sheets.Count

For V = 1 To N

    For Each cell In Sheets(V).Range("A1:A100")

    If cell.Value = X Then
        a = cell.Address
        Sheets(V).Select
        Range(a).Select
        Exit Sub
    End If

    Next cell

Next V
MsgBox "valeur cherchée, " & X & ", inconnue.", vbExclamation

End Sub

Bonjour,

ma contribution

Sub Macro1()
Dim MESFEUILLES As Worksheet
For Each MESFEUILLES In Worksheets
    MESFEUILLES.Select
    On Error Resume Next
   Cells.Find(What:="H42", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate
Next MESFEUILLES
End Sub

merci

j'ai pris ce code :

Sub Macro1()

Dim MESFEUILLES As Worksheet

For Each MESFEUILLES In Worksheets
    MESFEUILLES.Select
    On Error Resume Next
    A = InputBox("Nom :")
    Cells.Find(What:=A, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate

Next MESFEUILLES
End Sub

le pb c'est qu'il scrute les 3 feuilles mais ne m'affiche pas la valeur rentrée dans A.

J'ai fait une recherche par colonne car en fait cela ne concerne que la colonne A de chaque feuille.

une fois qu'il trouve ma valeur A il doit s'arrêter sur la cellule correspondante.

Sachant que A est une valeur unique. Il ne peut y avoir qu'un A existant dans une de mes trois feuilles.(ou la feuile1 ou la feuil2 ou la feuil3)

Bonjour tout le monde,

quattro1 : Si ça ne concernait pas que la colonne A, je crois qu'il y aurait la solution d'une recherche classique sur le classeur (en tout cas, chez moi, c'est possible).

Je fais ma proposition, à cheval entre celles de Cognomen et Xmenpl :

Sub Macro1()

Dim ws as worksheet
Dim rfind As Range
Dim valcherchee

valcherchee = inputbox("Nom :")

for each ws in worksheets
    with ws
        Set rfind = .range("A:A").find(valcherchee)
        If not rfind is Nothing Then
            .Activate
            rfind.Activate
            Exit Sub 'permet d'arrêter la recherche
        End if
    End with
next ws

MsgBox "aucune correspondance"

End Sub

Cdlt,

merci

j'ai pris ce code :

Sub Macro1()

Dim MESFEUILLES As Worksheet

For Each MESFEUILLES In Worksheets
    MESFEUILLES.Select
    On Error Resume Next
    A = InputBox("Nom :")
    Cells.Find(What:=A, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate

Next MESFEUILLES
End Sub

le pb c'est qu'il scrute les 3 feuilles mais ne m'affiche pas la valeur rentrée dans A.

J'ai fait une recherche par colonne car en fait cela ne concerne que la colonne A de chaque feuille.

une fois qu'il trouve ma valeur A il doit s'arrêter sur la cellule correspondante.

Sachant que A est une valeur unique. Il ne peut y avoir qu'un A existant dans une de mes trois feuilles.(ou la feuile1 ou la feuil2 ou la feuil3)

La variable A est à mettre dans les premières ligne en variable.

Sub Macro1()

Dim MESFEUILLES As Worksheet
Dim MONMOT As String
MONMOT = InputBox("Nom :")

For Each MESFEUILLES In Worksheets
    MESFEUILLES.Select
    On Error Resume Next

    Cells.Find(What:=MONMOT, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate

Next MESFEUILLES
End Sub

Bonjour Xmenpl,

Il faut rajouter un petit Exit Sub juste avant le next sinon la recherche continue les autres feuilles, et en les sélectionnant, d'où l'impression de recherche infructueuse.

ok merci à vous

Bonjour Xmenpl,

Il faut rajouter un petit Exit Sub juste avant le next sinon la recherche continue les autres feuilles, et en les sélectionnant, d'où l'impression de recherche infructueuse.

Bonjour et Bien vu je n'avais pas fait attention à ce point car pour mon test la valeur cherchée se trouvée dans le dernier onglet.

bonjour

J'ai un petit soucis.

Quand je recherche un nom exemple : H5V5. qui se trouve dans la 3ème feuille(je le sais).

Le code lui, va s'arrêter à la 2ème feuille, juste avant, sur : H5V50, et du coup pas bon

mon code :

Sub Macro1()

Dim ws As Worksheet
Dim rfind As Range
Dim valcherchee

valcherchee = InputBox("Nom :")

For Each ws In Worksheets
    With ws
        Set rfind = .Range("A:A").Find(valcherchee)
        If Not rfind Is Nothing Then
            .Activate
            rfind.Activate
            Exit Sub 'permet d'arrêter la recherche
        End If
    End With
Next ws

MsgBox "aucune correspondance"

End Sub

ok bon j'ai rajouter cela :

 Set rfind = .Range("A:A").Find(What:=valcherchee, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)

Bonjour,

Exactement, c'est l'argument LookAt:=xlWhole qui permet d'indiquer la correspondance totale.

Edit : Et vous pouvez éventuellement mettre LookIn:=xlValues et MatchCase:=True au cas où...

A plus,

Trop tard je voulais "corriger" 3GB mais Quattro a trouvé tout seul

Tu voulais me mettre une correction ?

Oui, bon, j'ai simplifié n'ayant pas d'indication précise sur la précision de recherche à effectuer, désolé

Rechercher des sujets similaires à "recherche feuil"