VBA Tableau croisé dynamique pb de compilatio

Fermé
petit1986 - 18 janv. 2011 à 12:48
 petit1986 - 20 janv. 2011 à 10:19
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.



1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
18 janv. 2011 à 19:23
Bonsoir,

lastrow ne convient pas du tout.
Si tu places un espion sur cette variable, tu constateras que lastrow est un entier.
Dans le cadre de l'ajout de ton TCD, tu devrais avoir une plage de cellules.

A+
0
Bonjour ZOUL67 et merci de t'être penché sur mon soucis, mais cette erreur j'aurai pu la régler par la suite (je pense). Mais merci de me la faire remarquer. Sinon mon soucis vient de l'élément "Version=xxxxx". Si tu as des idées sur ce point, je serai ravi.
D'avance merci.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
19 janv. 2011 à 17:35
Bonjour,
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.
0
Bonjour,
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.
0