Calculated Fields Variable

Seball

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit problème : Je souhaite créer un pivot tableau/TCD à l'aide d'une macro. Afin de ne pas surchargé mon tableau, je calcule directement le hcamps du tableau via Calculated Fields.

J'ai joins un petit exemple. Dans cet exemple, j'ai des charges et des primes pour 2009 et 2010. Mais ces dates évoluent avec le temps (l'an prochain je devrais faire le calcul avec 2010 et 2011, l'année d'après 2011 et 2012,...)

Pour créer ma pivot, j'utilise le code suivant :

Code:
Set Plage = report.Worksheets("Sheet2").Range("A1").CurrentRegion
Plage.Name = "TCD"
Set pivot = report.Worksheets("Sheet1")
pivot.Activate

With ActiveSheet
   .PivotTableWizard SourceType:=xlDatabase, SourceData:="TCD", TableDestination:= _
       "R2C1", TableName:="TCDWS"
   .PivotTables("TCDWS").PivotFields("Police").Orientation = xlPageField
   .PivotTables("TCDWS").CalculatedFields.Add "SP 2009", "='charge 09'/'prime acquise 09'", True
   .PivotTables("TCDWS").PivotFields("SP 2009").Orientation = xlDataField
   .PivotTables("TCDWS").CalculatedFields.Add "SP 2010", "='charge 10'/'prime acquise 10'", True
   .PivotTables("TCDWS").PivotFields("SP 2010").Orientation = xlDataField
End With

With ActiveSheet.PivotTables("TCDWS").DataPivotField
        .Orientation = xlColumnField
        .Position = 1
End With

J'aimerais trouver le moyen de ne pas devoir changer manuellement mon 2009 et "09" chaque année, et le remplacer par une variable.

J'ai essayé en écrivant, par exemple, "SP " & aa9 & " au lien de "SP 2009" mais il me l'a refusé (aa9 valant 2009)

L'un de vous a-t-il une solution pour ce problème?

Un tout grand merci d'avance!
 

Pièces jointes

  • test calculated fields.xls
    38.5 KB · Affichages: 37
G

Guest

Guest
Re : Calculated Fields Variable

Bonjour,


Pas de macro dans le fichier.

Je testerais:
Code:
Dim NomChamp As String
Dim FormuleChamp As sting
Dim aa
aa = 2009
NomChamp = Replace("SP ?", Format(aa, "0000"))
FormuleChamp = Replace("='charge ?'/'prime acquise ?'", "?", Right(Format(aa, "0000"), 2))

Pour ensuite:
Code:
.PivotTables("TCDWS").CalculatedFields.Add NomChamp, FormuleChamp, True

Et incrémenter aa et redéfinir NomChamp et FormuleChamp

A+
 

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 608
dernier inscrit
rawane