Dim pour champs calculés dans TCD

Bonjour,

Travaillant dans une entreprise de conseil digital, je travaille sur une Macro VBA implantée nativement dans les Excel des employés afin de créer un tableau croisé dynamique automatiquement avec à la fois des champs classiques de TCD (somme et moyenne) et des champs calculés sur un ensemble de rapports XLSX contenant des données de trafic (clics, impressions,...) et de conversions (ventes, chiffre d'affaires...).

Je transforme tout d'abord la plage de données sous forme de tableau Excel nommé, ce qui me permet d'utiliser les en-têtes de colonne pour les calculs par la suite (sans avoir de référence relative du type range.(A1)...). Donc par exemple, la colonne CA s'appelle 'CA' indépendamment du numéro de colonne où elle est située dans le rapport et je peux l'utiliser dans les TCD derrière

A date, j'arrive à tout faire et tout fonctionne parfaitement pour 80% des clients "standards".

La problématique sur laquelle je bute désormais est que certains clients ont leur propre façon d'appeler certaines conversions, par exemple certains diront "CA", d'autres "Revenue" ou encore "Chiffre d'affaires" pour finalement indiquer la même chose à peu de chose près. Par ailleurs, chaque client peut aussi avoir une méthode différente de calcul du CA (TVA ou pas, frais de port ou pas) et cela se matérialise par des colonnes différentes dans la table de données sur laquelle est basée le TCD. Or il faut que j'adapte le champ calculé du TCD à la méthode de calcul du client et là je galère également...

Je cherche donc à utiliser une variable pour dire :

  • Si c'est client1 alors la colonne par défaut CA du TCD s'appelle "Revenue"
  • Si c'est client2 alors la colonne par défaut CA du TCD s'appelle "Chiffre d'affaires"

Dans le même ordre d'idée, je cherche à dire pour les champs calculés spécifiques au client:

  • Si c'est client1 alors la méthode de calcul du CA est "Revenue/1,20" pour un CA HT
  • Si c'est client2 alors la méthode de calcul du CA est "CA HT+Frais de port" [Frais de port est une colonne de mon tableau de base]

Je dispose du nom du client quelque part dans le classeur Excel donc j'ai l'information à l'ouverture du classeur que je peux matcher avec une liste de variables dans mon code VBA pour que le calcul s’exécute correctement.

J'ai testé avec

Dim Client(3) As String

Client(0)="Client1"

Client(1)="Client2"

Client(2)="Client3"

mais je ne sais pas comment lui dire, checke ça avec avec la cellule B2 qui contient le nom de client et en fonction de ça, voici les différents cas de figure pour renommer les en-têtes du TCD et modifier les calculs des champs calculés...

Si vous pouviez m'aider?

Merci,

John

Bonsoir,

Je pense que tu dois joindre un fichier qui illustre tes propos avec un exemple de résultat.

Cdlt.

Rechercher des sujets similaires à "dim champs calcules tcd"