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?
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?