Bonjour à tous j'ai voulu créer un bouton qui permet à la fois de créer un premier tableau et à partir de ce même tableau créer le TCD correspondant. Le tableau se crée parfaitement bien par contre il ne veut pas créer le TCD. Il me met Sub ou fonction non défini en me surlignant le premier PivotFields. Ma question est de savoir si je dois séparer ces 2 fonctions ou alors faire un appel de la 2ème dans le première.
Je vous remercie par avance pour votre aide.
Code:
Sub CreerTableauAvecCalcul()
Dim xf2dlg As Long, xf2lg As Long, xeff As Long, xca As Long, xeffca As Double, xpersl As Long, xchext As Long, xperslchext As Double
Worksheets("Feuil3").Rows("1:65536").Delete
Worksheets("Feuil2").Activate
xf2dlg = Range("A65536").End(xlUp).Row
For xf2lg = 2 To xf2dlg
Worksheets("Feuil2").Range("A" & xf2lg).Copy Worksheets("Feuil3").Range("A" & xf2lg - 1)
Worksheets("Feuil2").Range("B" & xf2lg).Copy Worksheets("Feuil3").Range("B" & xf2lg - 1)
xeff = Range("C" & xf2lg): xca = Range("D" & xf2lg): xpersl = Range("E" & xf2lg): xchext = Range("F" & xf2lg)
xeffca = xeff / xca: xperslchext = xpersl / xchext
With Sheets("Feuil3")
.Range("C" & xf2lg - 1) = xeffca
.Range("D" & xf2lg - 1) = xperslchext
End With
With Worksheets("Feuil3").Range("C" & xf2lg - 1)
.NumberFormat = "0.00%"
End With
With Sheets("Feuil3").Range("D" & xf21g - 1)
.NumberFormat = "0.00%"
End With
Next xf2lg
Worksheets("Feuil3").Activate
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$" & Range("A65536").End(xlUp).Row), , xlNo).Name = _
"Tableau2"
Range("Tableau2[[#Headers],[Colonne1]]").Select
ActiveCell.FormulaR1C1 = "Date"
Range("Tableau2[[#Headers],[Colonne2]]").Select
ActiveCell.FormulaR1C1 = "Nom"
Range("Tableau2[[#Headers],[Colonne3]]").Select
ActiveCell.FormulaR1C1 = "Effectifs"
Range("Tableau2[[#Headers],[Colonne4]]").Select
ActiveCell.FormulaR1C1 = "CA"
ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
[Feuil3!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
TableDestination:="Feuil4!R1C1", _
TableName:="Mon TCD"
With Feuil4.PivotTables("Mon TCD")
With PivotFields("Nom")
.Orientation = xlPageField
.Position = 1
End With
.AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Effectifs"), _
"Somme des effectifs", xlSum
End With
End Sub
Je vous remercie par avance pour votre aide.