Macro mapping table de correspondance

Bonjour,

J'aimerai trouvé une macro qui rechercherait des infos dans un tableau et reporterait les infos dans un onglets.

Dans la feuille 1 j'ai un tableau en colonne A des codes en colonne B leurs description puis dans les colonnes suivantes des autres codes.

Je voudrais que dans la feuille 2 pour chaque code en colonne A la macro trouve ça correspondance dans la feuille 1 et reporte ça correspondance en colonne C.

J'ai réduit le fichier en ligne car normalement il y a plus de 400 lignes et 50 colonnes d'où ma demande de macro.

M

Merci d'avance.

Bonjour,

L'utilisation d'une macro est-elle indispensable, ou une solution en formule c'est bon ?

Une possibilité en formule :

Modifications (en rouge dans fichier) :
- Ajout d'une colonne intermédiaire en Feuille 1, colonne C pour rechercher la référence dans les colonnes adjacentes (attention, formule matricielle à valider avec CTRL + MAJ + ENTREE) :

=INDEX(D4:J4;EQUIV(MAX(NBCAR(D4:J4));NBCAR(D4:J4);0))

- Ajout d'une fonction de recherche en colonne C feuille 2

=INDEX(Feuil1!$A$4:$A$8;EQUIV($A2;Feuil1!$C$4:$C$8;0))

Merci Pedro pour ton retour, j'aurais c'est vrai préféré une macro mais je vais pas faire le difficile.

Par contre lorsque j'ajoute un nouvelle élément en feuille 2 et je renseigne la feuille 1 je n'ai pas la correspondance.

C'est normal, toutes les formules sont appliquées à la dimension de tes tableaux dans le 1er fichier exemple. Si le fichier original possède plus de lignes et/ou colonnes, il faut revoir toutes les plages dans les formules.

Sinon un code VBA :

Sub TabCorrespondance()

Dim Lig As Long, Cel As Range

With Sheets("Feuil2")
    For Lig = 2 To .Range("A" & Rows.Count).End(xlUp).Row 'Boucle sur les lignes Feuille 2
        For Each Cel In Sheets("Feuil1").Range("C4:I9") 'Boucle sur plage de recherche Feuille 1
            If Cel.Value = .Range("A" & Lig).Value Then 'Si correspondance
                .Range("C" & Lig).Value = Sheets("Feuil1").Range("A" & Cel.Row) 'Report du n° en Feuille 1 colonne A en Feuille 2 colonne C
                Exit For 'On arrête de parcourir la plage de recherche pour cette référence
            End If
        Next Cel
    Next Lig
End With

End Sub

A noter que dans cette version, la plage de référence est définie "en dur" dans le code. S'il faut déterminer automatiquement sa dimension (dernière ligne et dernière colonne), ça demandera quelques instructions supplémentaires.

Bonjour

Bonjour à tous

Une variante. La Feuil2 se met à jour quand on l'active.

Bye !

Rechercher des sujets similaires à "macro mapping table correspondance"