Renverser un tableau

Bonjour,

Désolé pour mon titre un peu flou, mais vous comprendrez certainement mieux mon objectif avec le fichier joint très simplifié qui montre mon tableau de départ, et ce que je veux en faire.

Dans les grandes lignes, j'ai une colonne A avec des noms, et des couleurs associées aux noms dans les colonnes suivantes. L'idée est de "renverser ce tableau en ayant une liste des couleurs dédoublonnées en colonne A, et en B tous les noms associés à cette couleur (soit séparés par une virgule sur une cellule, soit sur des cellule séparées).

16exemple.xlsx (9.67 Ko)

Merci pour votre aide

Bonjour,

Une piste avec le résultat 10 lignes plus bas que la plage. Pour le noir, il manquait Jean-Marc :

Sub Dico()

    Dim PlageV As Range
    Dim PlageH As Range
    Dim CelV As Range
    Dim CelH As Range
    Dim Dico As Object
    Dim Cle As Variant
    Dim I As Integer

    Set Dico = CreateObject("Scripting.Dictionary")

    With ActiveSheet: Set PlageV = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With

    For Each CelV In PlageV

        With ActiveSheet: Set PlageH = .Range(.Cells(CelV.Row, 2), .Cells(CelV.Row, 6)): End With

        For Each CelH In PlageH

            If CelH.Value <> "" Then Dico(CelH.Value) = Dico(CelH.Value) & CelV.Value & ", "

        Next CelH

    Next CelV

    I = PlageV.Rows.Count + 10 'résultat 10 lignes plus bas

    For Each Cle In Dico.Keys

        Cells(I, 1).Value = Cle
        Cells(I, 2).Value = Left(Dico(Cle), Len(Dico(Cle)) - 2) 'supprime la virgule et l'espace de fin
        I = I + 1

    Next Cle

End Sub

Bonjour

C'est faisable de façon assez simple et approchante en décroisant les données puis en faisant un TCD.

Suffisant si c'est à faire une seule fois.

Sinon faisable aussi avec POwerQuery add on sur 2010 et intégré à 2016.

Merci pour vos retours !

@Theze : Merci ! j'ai essayé ta macro. Ca semble pas mal, mais j'ai des manques sur mon fichier qui est beaucoup plus large que mon fichier exemple (30 colonnes environ pour une centaine de lignes). Une idée ?

Edit : Ha c'est bon j'ai trouvé (CelV.Row, 6)

@78Chris : je vais effectivement avoir besoin de répéter l'opération plusieurs fois. Je vais regarder avec PowerQuery ce que je peux faire. Merci.

Rechercher des sujets similaires à "renverser tableau"