Mise en page après TCDYN

Bonjour,

J'ai une petite question car j'aimerai obtenir une mise en forme particulière suite à un tableau croisé dynamique.

J'ai un onglet de base qui comporte des noms/prénoms dans deux colonnes distinctes ainsi qu'une colonne destination.

J'ai créé un tableau croisé qui me regroupe les noms/prénoms identiques ainsi que les destinations pour ces mêmes noms/prénoms (en cas de doublon noms/prénoms les destinations sont l'une sous l'autre).

Je voudrais sur un dernier onglet une mise en forme particulière mais surtout avoir dans des colonnes différentes les destinations pour les doublons (pas l'une sous l'autre comme dans le tcdyn).

Le petit plus si je pouvais avoir la même mise en page que dans mon exemple serait top

Je mets un exemple car c'est pas simple à expliquer comme ça et ça sera beaucoup plus parlant

Merci pour votre aide si vous trouvez une solution à mon problème

8exemple.xlsx (19.87 Ko)

Bonjour,

Il va falloir passer soit par PowerQuery (mais tu es en version 2007), soit par une macro (assez simple)...

Oui j'imaginais bien une macro effectivement :p

Bon, quelque chose qui peut quand même s"y approcher via un TCD (et 2 colonnes sup)

3exemple.xlsx (18.55 Ko)

Pas mal du tout cette approche pour le croisé dynamique, j'y avais pas pensé du tout.

Cette solution me convient déjà pas mal du tout

Si il y a d'autres solutions avec la mise en page finale je suis preneur, sinon je reste sur ça et je ferai la mise en page manuellement.

Merci beaucoup pour l'aide

Ah une chose que j'ai oublié de préciser :

Si l'ensemble Nom / Prénom / Destination est en doublon, j'aimerai que ça ne s'affiche qu'une seule fois, j'ai omis ce "détail" mais qui a son importance.

Désolé

Si il y a d'autres solutions avec la mise en page finale je suis preneur, sinon je reste sur ça et je ferai la mise en page manuellement.

je vais une macro, d'autant que ...

Ah une chose que j'ai oublié de préciser :

Si l'ensemble Nom / Prénom / Destination est en doublon, j'aimerai que ça ne s'affiche qu'une seule fois, j'ai omis ce "détail" mais qui a son importance.

cela commence à se compliquer alors !!

Et oui ça se complique, j'en suis bien conscient

Et pour compliquer encore plus les choses, si la destination contient également des lettres (genre 8Y), la fonction somme du tcdyn ne fonctionne plus dans ce cas.

A vérifier ...

Sub Paulox()
Sheets("BASE").Select
Dim dico1 As Object, dico2 As Object, dico3 As Object
With Sheets("RESULTAT")
    .Cells.Clear
    ligne = 2
    maxi = 1
    Set dico1 = CreateObject("Scripting.Dictionary")
    Set dico2 = CreateObject("Scripting.Dictionary")
    Set dico3 = CreateObject("Scripting.Dictionary")
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        dico1(Cells(i, 1).Value) = dico1(Cells(i, 1).Value) + 1
        dico2(Cells(i, 1).Value & "|" & Cells(i, 2).Value) = dico2(Cells(i, 1).Value & "|" & Cells(i, 2).Value) + 1
        dico3(Cells(i, 1).Value & "|" & Cells(i, 2).Value & "|" & Cells(i, 3).Value) = dico3(Cells(i, 1).Value & "|" & Cells(i, 2).Value & "|" & Cells(i, 3).Value) + 1
        maxi = Application.Max(maxi, dico3(Cells(i, 1).Value & "|" & Cells(i, 2).Value & "|" & Cells(i, 3).Value))
    Next
    For Each cle1 In dico1.keys
        .Cells(ligne, 1) = cle1
        mise_en_forme .Range(.Cells(ligne, 1), .Cells(ligne, maxi + 2))
        ligne = ligne + 1
        For Each cle2 In dico2.keys
            If cle2 Like cle1 & "|*" Then
                .Cells(ligne, 1) = Split(cle2, "|")(1)
                colonne = 2
                For Each cle3 In dico3.keys
                    If cle3 Like cle2 & "|*" Then
                        .Cells(ligne, colonne) = Split(cle3, "|")(2)
                        colonne = colonne + 1
                    End If
                Next
                ligne = ligne + 1
            End If
        Next
    Next
.Select
End With
End Sub
8exemple.xlsm (24.13 Ko)

Super ça m'a l'air de fonctionner au poil, j'ai testé avec mon fichier complet et la mise en page est quasiment nickel...

Merci 1000 fois pour le temps passé

On aurait pu peaufiner pour trier ...

Je l'ai rajouté dans la macro et finalisé avec la mise en forme que je souhaite au final.

Encore merci

Avec une gestion des sauts de page (pour les tests, j'ai mis maxpage = 15, à ajuster)

4exemple.xlsm (42.04 Ko)
Rechercher des sujets similaires à "mise page tcdyn"