Calculated Fields Variable

  • Initiateur de la discussion Initiateur de la discussion Seball
  • 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 !

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

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+
 
- 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
Retour