Transposer un TCD

Bonjour,

J'ai joins un fichier pour expliquer mon problème, contenant deux onglets.

Concrètement, j'ai une liste de 10 références ayant 1 ou plusieurs couleurs.

S'il n'y a qu'une couleur, la référence n'apparaît qu'une fois. S'il y a plusieurs couleurs, la référence apparaît sur plusieurs lignes.

Avec un tableau croisé dynamique, la référence n'apparaît plus qu'une seule fois avec les couleurs en-dessous. Ce que j'aimerais faire, c'est transposer les couleurs en ligne, dans les colonnes suivants la référence (voir deuxième onglet).

Malgré plusieurs essais, c'est toujours infructueux, c'est pour quoi je viens vous demander votre aide aujourd'hui.

Merci par avance !

P.S. : De préférence pas de VBA car je n'y connais pas grande chose et si je dois mettre les mains dedans pour modifier certaines choses ça risque d'être compliqué. Après s'il n'existe pas d'autres solutions je suis quand même preneur

9exemple.xlsx (45.76 Ko)

Bonjour

Pas possible en TCD : à la croisée des lignes et colonnes tu ne peux avoir qu'un calcul statistique.

Faisable avec PowerQuery depuis la version 2010 mais si tu as 2007, VBA...

Bonjour à tous,

une manière, basée sur ton exemple en feuille1

P.

Ou comme le dit 78chris, PQ peut aussi le faire suivant ta version XL

Sub InversRegroupe()
'
T = Timer
Dim Last&
Set d1 = CreateObject("Scripting.Dictionary")
Set d2 = CreateObject("Scripting.Dictionary")
Set f1 = Sheets("f1")
f1.[e1:J65536].ClearContents
Last = [A65000].End(xlUp)
Dim A()
ReDim A(1 To Last * Last, 1 To Last)
Lig = 1
Col = 1
Mlig = Lig
Mcol = Col
For Each c In f1.Range("a1:a" & f1.[A65000].End(xlUp).Row)
    If d1.exists(c.Value) Then Lig = d1(c.Value) Else d1(c.Value) = Mlig: Lig = Mlig: Mlig = Mlig + 1
    tmp = c.Offset(, 1)
    If d2.exists(tmp) Then Col = d2(tmp) Else d2(tmp) = Mcol: Col = Mcol: Mcol = Mcol + 1
    A(Lig, Col) = c.Offset(, 1)
Next c
f1.[F2].Resize(d1.Count, d2.Count) = A
f1.[F2].Resize(d1.Count, 1) = Application.Transpose(d1.keys)
f1.[G2].Resize(1, d2.Count) = "Couleurs"
MsgBox (Timer - T)
End Sub

Merci pour vos réponses, je vais donc voir pour passer à une version plus récente !

Rechercher des sujets similaires à "transposer tcd"