Rechercher une donnée précise, mais dans plusieurs feuilles

Bonjour!

Je suis débutante avec les formules Excel, c'est peut être pour cette raison que je n'arrive pas a faire exactement ce que je veux.

Je veux rechercher une donnée précise, unique, mais qui pourrait se retrouver dans plusieurs feuilles différentes, et si la donnée est trouvée, que ça génère le nom de la feuille/tableau dans laquelle la donnée est trouvée.

Chaque tableau est composé du même genre de donnés dans chaque colonne. ( colonne A = Numéro de poste, colonne B = Nom, ... )

Chaque feuille est un département ( Médecine, Chirurgie, Urgences, ... )

Si je tape un numéro de poste ( 1234 ), je veux que la recherche soit faite dans toutes les colonnes A de chaque feuille, et si la donnée est trouvée dans la feuille Chirurgie, que ce soit ce terme qui soit générée.

Il m'est aussi possible d'ajouter une colonne à chaque tableau de chaque feuille pour renvoyer à une colonne si vous croyez que la recherchev serait plus simple.

Je me doute très bien que la formule risque d'être plutôt longue...

Merci d'avance de votre aide

Bonjour,

Ici, avec une fonction perso qui retourne un tableau de 3 valeurs. Tu colles ce code dans un module standard puis tu sélectionnes trois cellules verticales dans la feuille que tu veux et ensuite, dans la barre de formule tu entres la formule =ChercheValeur("Valeur cherchée") en adaptant "Valeur cherchée" et tu valides en matricielle (Ctrl+Maj+Entrée) :

Function ChercheValeur(Valeur) As String()

    Dim Tbl(1 To 3, 1 To 1) As String
    Dim Fe As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Zone As String

    'parcours les feuilles
    For Each Fe In Worksheets

        'défini la plage sur toute la feuille en cours
        Set Plage = DefPlage(Fe)

        'si la feuille contient au moins une valeur...
        If Not Plage Is Nothing Then

            '...lance la recherche
            Set Cel = Plage.Find(Valeur, , xlValues, xlWhole)

            'si trouvé, affiche un message indiquant les valeurs voulues
            If Not Cel Is Nothing Then

                'si la cellule n'est pas à l'intérieur d'un tableau structuré, erreur !
                On Error Resume Next
                Zone = Cel.ListObject.Name
                If Err.Number <> 0 Then Zone = Cel.Parent.Name
                On Error GoTo 0

                'retourne les valeurs dans un tableau
                Tbl(1, 1) = Fe.Name
                Tbl(2, 1) = Zone
                Tbl(3, 1) = Cel.Address(0, 0)

                ChercheValeur = Tbl

                Exit Function

            End If

        End If

    Next Fe

End Function

Private Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range

    On Error GoTo Fin

    With Fe

        Set DefPlage = .Range(.Cells(L, C), _
                       .Cells(.Cells.Find("*", .[A1], -4123, , _
                       1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
                       2, 2).Column))

    End With

    Exit Function

Fin:

    Set DefPlage = Nothing

End Function

Bonjour,

Pour une toute première demande ... tu tapes fort

Ci-joint ton fichier test avec une ' formule ' ... qui je l'espère ...

sera, à tes yeux, ... ' hospitalière ' ...

Bonjour et bienvenue sur le forum

Bonjour à tous

Une variante.

Bye !

15classeur1-v1.xlsm (21.14 Ko)

Bonjour à tous,

Abandon en rase campagne ... !!!

Je devrais dire ... brousse ...

Rechercher des sujets similaires à "rechercher donnee precise feuilles"