phi.rousseau
XLDnaute Nouveau
Bonjour,
J'ai du mal à retenir par coeur la synthaxe des tableaux croisés dynamiques.
Pour en intégrer un dans une macro, j''enregistre une nouvelle macro quand je crée le tableau, puis je vais copier la syntaxe du module créé dans ma macro principale.
C'est ce que je viens de faire, et ça ne marche pas.
J'ai essayé en utilisant R1C1:R" & CStr (fin2) & "C4 pour définir la source de données. Ca ne marche pas non plus
merci de vos lumières
Range("a1").Select
Selection.EntireRow.Select
Selection.Insert
Range("a1").Select
ActiveCell.Value = "Nature"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "code ana"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "libellé nature"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "montant"
Range("a1").Select
ActiveCell.End(xlDown).Select
fin2 = ActiveCell.Row
Range("a1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:="Base cumul!R1C1:R96C4", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Base cumul!R3C7", TableName:="Tableau croisé dynamique1" _
, DefaultVersion:=xlPivotTableVersion14
Sheets("Base cumul").Select
Cells(3, 7).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nature")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"code ana")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("montant"), _
"Nombre de montant", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre de montant")
.Caption = "Somme de montant"
.Function = xlSum
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").NullString = "0"
J'ai du mal à retenir par coeur la synthaxe des tableaux croisés dynamiques.
Pour en intégrer un dans une macro, j''enregistre une nouvelle macro quand je crée le tableau, puis je vais copier la syntaxe du module créé dans ma macro principale.
C'est ce que je viens de faire, et ça ne marche pas.
J'ai essayé en utilisant R1C1:R" & CStr (fin2) & "C4 pour définir la source de données. Ca ne marche pas non plus
merci de vos lumières
Range("a1").Select
Selection.EntireRow.Select
Selection.Insert
Range("a1").Select
ActiveCell.Value = "Nature"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "code ana"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "libellé nature"
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "montant"
Range("a1").Select
ActiveCell.End(xlDown).Select
fin2 = ActiveCell.Row
Range("a1").Select
ActiveCell.CurrentRegion.Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:="Base cumul!R1C1:R96C4", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Base cumul!R3C7", TableName:="Tableau croisé dynamique1" _
, DefaultVersion:=xlPivotTableVersion14
Sheets("Base cumul").Select
Cells(3, 7).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nature")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"code ana")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("montant"), _
"Nombre de montant", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre de montant")
.Caption = "Somme de montant"
.Function = xlSum
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").NullString = "0"