XL 2016 Macro tableau croisé dynamique plage variable

MAXJLAURENT

XLDnaute Nouveau
Sub Macro6()
'

'

'
Range("E1").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"MACRO!R1C1:R89C4", Version:=6).CreatePivotTable TableDestination:= _
"MACRO!R1C5", TableName:="Tableau croisé dynamique2", DefaultVersion:=6
Sheets("MACRO").Select

Bonjour, je ne sais pas comment faire la modification dans le cas de plage variable.

De l'aide svp, merci
 

Pièces jointes

  • Copie de macro Salaire.xlsm
    46.2 KB · Affichages: 12

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une petite macro bien utile pour mettre en place un TCD
VB:
Sub créer_TCD()
Dim ws As Worksheet, pvtCache As PivotCache, pvt As PivotTable, Nom_TCD, vDeb$, Source$

Source = ActiveSheet.Name & "!" & Cells(1).CurrentRegion.Address(ReferenceStyle:=xlR1C1)
Set ws = Sheets.Add: vDeb = ws.Name & "!" & ws.[A6].Address(ReferenceStyle:=xlR1C1)
Set pvtCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, Source)

Nom_TCD = CStr(InputBox("Nom du TCD?")): Set pvt = pvtCache.CreatePivotTable(vDeb, Nom_TCD)
End Sub
NB: Ici la plage Source commence en A1 et le tableau est contigu (pas de trous)
 

chris

XLDnaute Barbatruc
Bonjour à tous

A noter qu'il suffit de mettre la source sous forme de tableau structuré et de baser le TCD sur le tableau pour que la variabilité soit automatiquement gérée.

Par ailleurs avec 2016, le code pourrait être remplacé par une requête PowerQuery (intégré à Excel)
 

Discussions similaires

Réponses
1
Affichages
494