TCD plusieurs feuilles nom variable

nina71287

XLDnaute Occasionnel
bonjour,

je cherche a créer un tableau croisé dynamique a partir de plusieurs feuilles sachant que le nombre de feuilles varie ( une trentaine a peu près) et que je ne sais pas les nom des feuilles a l'avance. comment adapter ce code obtenu avec l'enregistreur de macro sachant que j'ai la liste des noms des feuilles dans une feuille nommée "liste_agent" merci pour votre aide

ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array(Array("Feuil1!R1C1:R20C12", "Élément1"), Array("Feuil2!R1C1:R20C12", _
"Élément2"), Array("Feuil3!R1C1:R20C12", "Élément3")), Version:= _
xlPivotTableVersion10).CreatePivotTable TableDestination:= _
"[tcdTroisFeuil.xls]synthese!R27C3", TableName:="Tableau croisé dynamique2", _
DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique2").DataPivotField.PivotItems( _
"Nombre de Valeur").Position = 1
 

nina71287

XLDnaute Occasionnel
Re : TCD plusieurs feuilles nom variable

j'ai trouvé

Application.ScreenUpdating = False
Dim wsn As String
Dim i As Integer
Dim prange As String
Dim PCrange As String
Dim rangearr() As String

ReDim Preserve rangearr(i To Worksheets.Count - 1)

For i = 1 To Worksheets.Count - 1 Step 1
wsn = Worksheets(i).Name
Sheets(wsn).Select
Range("A1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
prange = Selection.Address(ReferenceStyle:=xlR1C1, _
RowAbsolute:=True, _
ColumnAbsolute:=True)
PCrange = wsn & "!" & prange
If (i - 3) < 0 Then rangearr(0) = PCrange _
Else: rangearr(LBound(rangearr) + (i - 2)) = PCrange
Next i

Sheets("synthese").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlConsolidation, SourceData:= _
rangearr).CreatePivotTable TableDestination:=Range("a1"), _
TableName:="PivotTable1"
With ActiveSheet.PivotTables("PivotTable1")
.ColumnGrand = False
.HasAutoFormat = False
.RowGrand = False
.SmallGrid = False
End With
ActiveSheet.PivotTables("PivotTable1").SmallGrid = False
'ActiveSheet.PivotTables("PivotTable1").PivotFields("Data").PivotItems(
'"Sum of Value").Position = 1

Range("D1").Select
Application.CommandBars("PivotTable").Visible = False

End Sub
 

chris

XLDnaute Barbatruc
Re : TCD plusieurs feuilles nom variable

Bonjour

Sur les TCD multi sources on ne peut avoir que 3 champs dans la grille d'analyse page, colonne, ligne.
Page étant la source il n'en reste que 2 : que tu peux mettre tous 2 en colonnes mais c'est tout.
 

Discussions similaires

Réponses
1
Affichages
528

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 537
dernier inscrit
alisafred974