je viens de faire un TCD en enregistrement auto vba sous excel 2003. Mon probléme c'est la plage variable. tous les mois des lignes devront s'ajouter dans mon tableau d'orignie. comment puis je modifier les lignes de commande pour que le macro prenne en compte les nouvelle lignes
merci pour votre aide
cyril
'
ActiveWorkbook.PivotCaches.Add(SourceType:= xlDatabase, SourceData:= _
"'Global aquisition'!R1C1:R736C21"). CreatePivotTable TableDestination: ="", _
TableName:="Tableau croisé dynamique9", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("Segment" _
)
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields("C.G.")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique9").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique9").PivotFields("Montant"), _
"Somme de Montant", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Pour trouver les valeurs de nbLignes et de nbColonnes, tu peux faire comme suit, en supposant que tu es dans la feuille de données
nbLignes = Cells.Find("*", Range("A1"),,, xlByRows, xlPrevious).Row
nbColonnes = Cells.Find("*", Range("A1"),,, xlByColumns, xlPrevious).Column
Comme j'imagine que le nombre de colonnes ne changera pas, il n'est pas nécessaire d'y aller avec la formule, et de tout simplement mettre 21
donc
"'Global aquisition'!R1C1:R" & nbLignes & "C21)