Autres Question concernant les tables pivots

nikolaslefebvre

XLDnaute Nouveau
Bonjour,

J'ai besoin de votre aide pour deux tableaux croisés dynamiques. Pour info, j'utilise Excel 2007.
Je ne sais pas si ce que je veux est possible dans Excel. J'ai joint un exemple.
Le tableau original correspond à ce que je veux.
Le premier tableau consiste à regrouper les lignes ayant le même ID et à fusionner les cellules des personnes.
Le deuxième tableau consiste à regrouper les lignes ayant le même ID et à compter le nombre de personnes.

Merci pour vos conseils,

Nicolas
 

Pièces jointes

  • Tableau croisé.xlsx
    10 KB · Affichages: 16

Staple1600

XLDnaute Barbatruc
Bonjour

Je me suis simplement laissé guider par ma souris ;)
TCDTCD.png

1) Sélection du tableau puis Insertion/Tableau Croisé Dynamique
 

Staple1600

XLDnaute Barbatruc
Re

Non, pas de macros.
As-tu fais la 1er étape?
Tu sélectionnes ton tableau initial A2:I9
Puis sur le ruban, faire:
Insertion/Tableau Croisé Dynamique
Tu dois voir ceci s'afficher
etape1.png

Et là, tu coches l'option de ton choix pour l'emplacement.
 

Staple1600

XLDnaute Barbatruc
Re

Pour conclure, si tu n'as réussi à finaliser ton TCD, voici une macro qui le fera
(test OK sur Excel 2013)
Il faut sélectionner le tableau avant de lancer la macro.
VB:
Sub CREER_TCD()
Dim f As Worksheet, pvt As PivotTable, pvtCache As PivotCache, sTab$, pf As PivotField
Set f = Sheets("DATA")
sTab = Selection.Parent.Name & "!" & Selection.Address(ReferenceStyle:=xlR1C1)
Set pvt = ActiveWorkbook.PivotCaches.Create(SourceType:=1, SourceData:=sTab).CreatePivotTable("", "")
Application.ScreenUpdating = False
    pvt.PivotFields("ID").Orientation = xlRowField
    pvt.PivotFields("ID").Position = 1
    pvt.PivotFields("PRODUCT").Orientation = xlRowField
    pvt.PivotFields("PRODUCT").Position = 2
    pvt.PivotFields("REGION").Orientation = xlRowField
    pvt.PivotFields("REGION").Position = 3
    pvt.PivotFields("COUNTRY").Orientation = xlRowField
    pvt.PivotFields("COUNTRY").Position = 4
    pvt.PivotFields("PERSONS").Orientation = xlRowField
    pvt.PivotFields("PERSONS").Position = 5
    pvt.RowAxisLayout xlTabularRow
On Error Resume Next
For Each pf In pvt.PivotFields
pf.Subtotals(1) = False
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Il suffit simplement de déplacer la champ manuellement (à la souris)
(dans la Liste des champs à droite de l'écran
(voir copie écran du message#6)

NB: Dans mes deux exemples
(a) copie écran (-> message#2)
(b) macro
C'est déjà le cas, non ?
 

Discussions similaires

Réponses
3
Affichages
291