VBA Tableau croisé dynamique pb de compilatio
petit1986
-
petit1986 -
petit1986 -
Bonjour,
Je suis presque débutant en VBA et j'essai de faire un tableau croisé dynamique avec une macro.
Je n'arrive pas à résoudre un problème. Ci dessous mon code :
Sub creer_tableau_croise_dynamique()
'dernière ligne = lastrow
Dim lastrow
lastrow = Range("A3").End(xlDown).Row
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"base de données!lastrow", Version:=xlPivotTableVersion12). _
CreatePivotTable TableDestination:="tableau croisé dynamique!L14C1", _
TableName:="Tableau croisé dynamique2", DefaultVersion:= _
xlPivotTableVersion12
Sheets("tableau croisé dynamique").Select
Cells(14, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("PROJET")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("TACHE")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("QUI")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"ETAT DE LA TACHE")
.Orientation = xlPageField
.Position = 1
End With
End Sub
J'ai une erreur de compilation lorsque j'exécute la macro au niveau de la version=xlpivotTableVersion12 !
Je ne suis pas sûr que le reste fonctionnne mais en tout cas, je suis bloqué ici !
Merci d'avance à tous ceux qui se posent sur ce problème.
Je suis presque débutant en VBA et j'essai de faire un tableau croisé dynamique avec une macro.
Je n'arrive pas à résoudre un problème. Ci dessous mon code :
Sub creer_tableau_croise_dynamique()
'dernière ligne = lastrow
Dim lastrow
lastrow = Range("A3").End(xlDown).Row
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"base de données!lastrow", Version:=xlPivotTableVersion12). _
CreatePivotTable TableDestination:="tableau croisé dynamique!L14C1", _
TableName:="Tableau croisé dynamique2", DefaultVersion:= _
xlPivotTableVersion12
Sheets("tableau croisé dynamique").Select
Cells(14, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("PROJET")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("TACHE")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("QUI")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"ETAT DE LA TACHE")
.Orientation = xlPageField
.Position = 1
End With
End Sub
J'ai une erreur de compilation lorsque j'exécute la macro au niveau de la version=xlpivotTableVersion12 !
Je ne suis pas sûr que le reste fonctionnne mais en tout cas, je suis bloqué ici !
Merci d'avance à tous ceux qui se posent sur ce problème.
A voir également:
- VBA Tableau croisé dynamique pb de compilatio
- Tableau croisé dynamique - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
D'avance merci.
Je ne dispose que de la version 10 d'Excel, qui ne fait pas apparaître la version pour la fonction Add :
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C1:R8C3").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
Array("a", "q")
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("1"). _
Orientation = xlDataField
Ton problème vient-il vraiment de Version ou plutôt de la fonction Add à cause de lastrow ?
En faisant une saisie manuelle ActiveWorkbook.PivotCaches.Add(, les arguments facultatifs apparaissent en aide contextuelle.
Merci êncore de l'intérêt que tu portes à mon soucis mais je suis passé par une toute autre solution concernant mon problème. En fait, cette macro devait créer un TCD mis à jour avec les dernières lignes de la base de données. Il y a une fonction toute faite sous Excel qui dit "ActiveWorkbook.RefreshAll" et qui m'est bien utile.
Mais merci encore.