Problème avec un tableau croisé dynamique sous vba

  • Initiateur de la discussion Initiateur de la discussion Cacou78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Cacou78

Guest
Bonjour, je viens de commencer à coder sous vba et j'ai un petit problème avec mon code qui me renvoit (argument non facultatif) en surlignant le.AddDataField. Voici mon code

Sub creation_TCD()
Dim Ma_feuille As Worksheet
Dim Mon_cache As PivotCache
Dim Mon_TCD As PivotTable
Dim mois As Variant

Set Ma_feuille = Worksheets.Add
Set Mon_cache = ActiveWorkbook.PivotCaches.Create(xlDatabase, "Synt_charge")
Set Mon_TCD = Mon_cache.CreatePivotTable(Ma_feuille.Range("A3"))
Mon_TCD.PivotFields("PQA Engineer").Orientation = xlRowField
Mon_TCD.PivotFields("Project Type").Orientation = xlColumnField
For i = 3 To 21
mois = Worksheets("Synt_charge").Cells(1, i).Value
With Mon_TCD
.AddDataField.PivotFields ("mois"), "charge", xlSum
.DataField("mois").NumberFormat = "0"
End With
End Sub


Le problème viendrait il du for? En fet la jai mis jusqu'a 21 pour tester, mais comme ce chiffre pourra changer en fonction de la volonté de l'utilisateur,c'est pour cela que j'avais besoin d'effectuer une boucle avec un for. Et ne connaissant pas bien la synthaxe à utiliser ni si cela est possible, pourriez vous m'aider?
 
Re : Problème avec un tableau croisé dynamique sous vba

j'ai essayé de construire mon tableau d'une autre manière et la j'obtiens l'erreur d'éxécution 1004 , qui vient de la derniere ligne
Sub TCD()
Dim mois As Variant

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Synt_charge!R1C1:R63C20").CreatePivotTable TableDestination:="", TableName _
:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"PQA Engineer")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Project Type")
.Orientation = xlColumnField
.Position = 1
End With
For i = 3 To 20
mois = Worksheets("Synt_charge").Cells(1, i).Value
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields(mois), _
"charge", xlSum

Next i


End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

T
Réponses
1
Affichages
2 K
Tinytoons
T
C
Réponses
23
Affichages
4 K
Charles78
C
C
Réponses
5
Affichages
2 K
Charles78
C
V
Réponses
69
Affichages
9 K
V
J
Réponses
15
Affichages
3 K
Jarzet
J
J
Réponses
2
Affichages
2 K
Jarzet
J
O
Réponses
2
Affichages
2 K
O
V
Réponses
1
Affichages
774
V
G
Réponses
2
Affichages
2 K
g.milano
G
P
Réponses
0
Affichages
2 K
phi.rousseau
P
N
  • Question Question
Réponses
5
Affichages
3 K
M
Réponses
1
Affichages
18 K
S
Réponses
0
Affichages
2 K
S
C
Réponses
9
Affichages
3 K
C
Retour