Formule index+equiv sur matrice multi-feuille

Bonjour à vous,

Je souhaite réaliser une formule dans un classeur composer de 18 feuilles avec dans chaque une un tableau de même nature (nombre de colonne, nom des colonnes…..) mais dont le nombre de ligne diffère et est amener à être compléter.

La formule que je souhaite mettre en place est une formule INDEX+EQUIV afin de rechercher dans toutes les feuilles les infos souhaiter suivant un numéro de local sans voir a fouiller manuellement dans toutes les feuilles

Le souci rencontrer c'est la matrice de recherche qui ne me permet pas de sélectionné plusieurs feuilles.

j'ai fait quelque recherche sur internet et j'ai trouver une formule =Trf_plage(Ma Plage; "Feuil1:Feuil3") accompagner d'un VBA que je ne comprend pas trop (petit niv en VBA) à intégrer dans la formule a la place de la matrice mais quand j'essaie de l'utilisé une erreur se fait.

Voici le lien ou j'ai trouver mes info https://www.commentcamarche.net/faq/13258-formules-sur-matrice-multi-feuilles

Auriez vous une solution a me proposé? ou me permettre de comprendre cette formule afin que je puisse la faire fonctionné pour mon cas.

Je peux vous joindre mon fichier si besoin est d'avoir un visuel.

Merci

Bonjour,

le nom de la fonction dans le code fourni est M_charge et non trf_plage.

Function M_Charge(plage As Range, Optional feuilles As String = "") As Variant
    Dim cel As Range, i As Long, j As Integer, tablo() As Variant, tablof() As Variant
    Dim f As Integer, feuille1 As String, feuille2 As String
    Application.Volatile ' Permet un recalcul automatique ' Définition de la feuille par défaut si aucune feuille n'est mentionnée
    If feuilles = "" Then feuilles = ActiveSheet.Name & ":" & ActiveSheet.Name
    i = -1
    If InStr(feuilles, ",") > 0 Then ' traitement des feuilles non contigues (séparées par des virgules)
        Do While InStr(feuilles, ",") > 0
            i = i + 1
            ReDim Preserve tablof(i)
            tablof(i) = Left(feuilles, InStr(feuilles, ",") - 1)
            feuilles = Mid(feuilles, InStr(feuilles, ",") + 1, Len(feuilles) - InStr(feuilles, ","))
        Loop
    End If
    i = i + 1
    ReDim Preserve tablof(i)
    tablof(i) = feuilles
    i = -1
    For f = LBound(tablof) To UBound(tablof) ' traite les différent blocs de feuilles
        feuilles = tablof(f)
        If InStr(feuilles, ":") = 0 Then feuilles = feuilles & ":" & feuilles ' je crée le bloc la feuille est seule
        ' Récupération de la feuille de début et la feuille de fin
        feuille1 = Left(feuilles, InStr(feuilles, ":") - 1)
        feuille2 = Right(feuilles, Len(feuilles) - InStr(feuilles, ":")) ' Passage en revue de toutes les feuilles entre Feuille1 et Feuille2
        For j = Sheets(feuille1).Index To Sheets(feuille2).Index ' Each ws In Sheets(feuilles)
            For Each cel In plage ' Pour chacune des cellules de la plage
                i = i + 1
                ReDim Preserve tablo(i) ' J'incrémente la table en cours de création
                tablo(i) = Sheets(j).Cells(cel.Row, cel.Column).Value ' Récupélation de la valeur
            Next
        Next j
    Next f
    M_Charge = tablo ' Affectation du tableau à la fonction (la matrice est créée)
End Function
8mcharge.xlsm (18.13 Ko)
Rechercher des sujets similaires à "formule index equiv matrice multi feuille"