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
 

Fichiers joints

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)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas