Transformer des lignes en colonnes

J’ai une colonne SAP et une colonne EAN.

Je peux avoir plusieurs EAN différents pour un seul SAP (qui est donc répété sur plusieurs lignes).

J’aimerais avoir tous les EAN liés à un seul SAP sur une même ligne, en plusieurs colonnes donc.

J’ai fait qques lignes manuellement pour vous montrer.

37book3.xlsx (430.72 Ko)

Remarque : il y a jusque 810 EAN pour un SAP, donc 810 colonnes à créer...

Remarque : il y a presque 20.000 lignes...

Merci d'avance pour votre aide !

Bonjour,

Il ne faut pas hésiter à utiliser le tableau croisé dynamique ....

Bonjour,

Une piste avec un dictionnaire mais pour autant de lignes, ça prend un peu de temps :

Sub Test()

    Dim Plage As Range
    Dim Cel As Range
    Dim Dico As Object
    Dim Cle
    Dim Tbl
    Dim I As Long

    Set Dico = CreateObject("Scripting.Dictionary")

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

    For Each Cel In Plage

        'concatène
        Dico(Cel.Value) = Dico(Cel.Value) & Cel.Offset(, 1).Value & "_"

    Next Cel

    I = 1

    For Each Cle In Dico.Keys

         Tbl = Split(Dico(Cle), "_")
         I = I + 1
         Cells(I, 7).Value = Cle
         Range(Cells(I, 8), Cells(I, 8 + UBound(Tbl))).NumberFormat = "@"
         Range(Cells(I, 8), Cells(I, 8 + UBound(Tbl))).Value = Tbl

     Next Cle

End Sub

Merci @Theze.

J'ai eu 1 solution par un copain :

Sub merging()

' TRIER LES SAP D ABORD

Range("A2").Select

Do Until ActiveCell.Value = ""

sap = ActiveCell.Value

adresse = ActiveCell.Address

adresse2 = ActiveCell.Offset(0, 2).Address

ActiveCell.Offset(1, 0).Select

If ActiveCell.Value = sap Then

Do Until ActiveCell.Value <> sap

ean = ActiveCell.Offset(0, 1).Value

adresseean = ActiveCell.Address

Range(adresse2).Select

ActiveCell.Value = ean

adresse2 = ActiveCell.Offset(0, 1).Address

Range(adresseean).Select

ActiveCell.EntireRow.Delete

Loop

End If

Loop

End Sub


@James007

Sauf erreur de ma part, un tcd ne m'aurait pas permis d'avoir les valeurs de la deuxième colonne ramenées sur la même ligne que le code SAP unique.

@James007

Sauf erreur de ma part, un tcd ne m'aurait pas permis d'avoir les valeurs de la deuxième colonne ramenées sur la même ligne que le code SAP unique.

Effectivement ... le tcd permet d'obtenir le résultat en moins de 10 secondes ....

mais sans traiter l'aspect 'cosmétique' ...

Content que tu aies pu trouver une solution ...

Rechercher des sujets similaires à "transformer lignes colonnes"