cs_loulou92300
Messages postés6Date d'inscriptionjeudi 27 mai 2004StatutMembreDernière intervention22 octobre 2013
-
29 nov. 2006 à 10:44
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
29 nov. 2006 à 23:54
Bonjour,
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)