Recherche par colonne

Bonjour à tous,

J'ai un classeur ou je référence des référence par couleur.

J'aimerais pas le biais d'une macro, faire un tableau qui par référence me donne les couleur disponible.

Je vous joins le tableau.

En page Avancement couleur se trouve les couleurs avec traduction anglaise et en dessous par colonne les référence.

Dans la page résumé, c'est ce que j'aimerais obtenir comme résultat.

On m'a proposé du Power Quiery, mais je n'aime pas, et je ne comprend pas trop, je préfère du VBA.

Merci D'avance pour vos réponses.

16recherche.xlsm (24.33 Ko)

Bonjour Damsa, bonjour le forum

Essaie comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim R As Range 'déclare la variable R (Recherche)
Dim PA As String 'déclare la variable PA (Première Adresse)
Dim PCV As Integer 'déclare la variable PCV (Première Colonne Vide)

Set OS = Worksheets("Avancement Couleurs") 'définit l'onglet source OS
Set OD = Worksheets("Résumé") 'définit l'onglet destination OD
OD.Range("A1").CurrentRegion.Offset(0, 1).ClearContents 'efface les anciennes valeurs de l'onglet OD
DL = OD.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OD
For I = 1 To DL 'boucle sur toutes les lignes de 1 à DL
    Set R = OS.Cells.Find(OD.Cells(I, 1).Value, , xlValues, xlWhole) 'définit la recherche R (recherche dans OS la valeur entière de la cellule ligne I colonne 1 de l'onglet OD)
    If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
        PA = R.Address 'définit l'adresse de la première occurrence trouvée
        Do 'exécute
            PCV = OD.Cells(I, Application.Columns.Count).End(xlToLeft).Column + 1 'définit la première colonne vide PVC de la ligne I de la boucle
            OD.Cells(I, PCV).Value = OS.Cells(1, R.Column) 'renvoie dans le cellule ligne I colonne PCV de l'onglet OD la valeur ligne 1 colonne de l'occurrence de l'onglet OS
            Set R = OS.Cells.FindNext(R) 'redéfinit la recherche R (occurrence suivante)
        Loop While Not R Is Nothing And R.Address <> PA 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en PA
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

Bonjour Damsa, bonjour le forum

Essaie comme ça :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim R As Range 'déclare la variable R (Recherche)
Dim PA As String 'déclare la variable PA (Première Adresse)
Dim PCV As Integer 'déclare la variable PCV (Première Colonne Vide)

Set OS = Worksheets("Avancement Couleurs") 'définit l'onglet source OS
Set OD = Worksheets("Résumé") 'définit l'onglet destination OD
OD.Range("A1").CurrentRegion.Offset(0, 1).ClearContents 'efface les anciennes valeurs de l'onglet OD
DL = OD.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OD
For I = 1 To DL 'boucle sur toutes les lignes de 1 à DL
    Set R = OS.Cells.Find(OD.Cells(I, 1).Value, , xlValues, xlWhole) 'définit la recherche R (recherche dans OS la valeur entière de la cellule ligne I colonne 1 de l'onglet OD)
    If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
        PA = R.Address 'définit l'adresse de la première occurrence trouvée
        Do 'exécute
            PCV = OD.Cells(I, Application.Columns.Count).End(xlToLeft).Column + 1 'définit la première colonne vide PVC de la ligne I de la boucle
            OD.Cells(I, PCV).Value = OS.Cells(1, R.Column) 'renvoie dans le cellule ligne I colonne PCV de l'onglet OD la valeur ligne 1 colonne de l'occurrence de l'onglet OS
            Set R = OS.Cells.FindNext(R) 'redéfinit la recherche R (occurrence suivante)
        Loop While Not R Is Nothing And R.Address <> PA 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en PA
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

Nickel,

C'est exactement ce que je voulais.

Merci

Rechercher des sujets similaires à "recherche colonne"