Bonjour à tous
J'ai créé un fichier qui est utilisé dans différent pays (Espagne, France, Brésil + langage Anglais). Le fichier n'est pas un fichier partagé.
Dans ce fichier, je dispose d'un TCD construit à partir de plusieurs plages de feuilles de calcul avec étiquettes.
Le problème est le suivant : lors de l'actualisation du TCD, le nom des champs est automatiquement traduit dans le langage configuré sur le PC sur lequel le fichier est ouvert.
Exemple :
J'ai essayé de renommer les champs, mais les noms redeviennent les noms génériques comme dans l'exemple précédent dès lors que le fichier est ouvert dans un autre pays.
Conséquence 1 : j'utilise le champ "Colonne" dans une macro. A chaque changement d'utilisateur "étranger", la macro génère une erreur normale (le champ "Colonne" n'existe plus lors d'une utilisation par un collègue espagnol, puisqu'il est devenu Columna)
Conséquence 2 : les étiquettes ligne et colonne, ainsi que la somme valeur deviennent vides. Obligation de réaffecter les champs et re-synthétiser les valeurs (somme)
Pour illustrer le problème :
En solution, j'imagine de renommer avec condition les champs avant actualisation , par exemple :
Si un pivotfield est nommé "Columna", alors le renommer "Colonne"
Si un pivotfield est nommé "Fila", alors le renommer "Ligne"
Si un pivotfield est nommé "Valor", alors le renommer "Valeur"
J'aurais besoin d'un coup de main pour écrire le code correspondant (si la solution est réaliste)
Peut être que je cherche à compliquer les choses et qu'il y a une astuce plus simple ?
Merci d'avance pour votre expertise et votre aide.
Cordialement
J'ai créé un fichier qui est utilisé dans différent pays (Espagne, France, Brésil + langage Anglais). Le fichier n'est pas un fichier partagé.
Dans ce fichier, je dispose d'un TCD construit à partir de plusieurs plages de feuilles de calcul avec étiquettes.
Le problème est le suivant : lors de l'actualisation du TCD, le nom des champs est automatiquement traduit dans le langage configuré sur le PC sur lequel le fichier est ouvert.
Exemple :
- j'ouvre le fichier en langage France , les champs sont nommés Colonne, Ligne, Valeur
- j'ouvre le fichier en langage Espagne , les champs sont nommés Columna, Fila, Valor
J'ai essayé de renommer les champs, mais les noms redeviennent les noms génériques comme dans l'exemple précédent dès lors que le fichier est ouvert dans un autre pays.
Conséquence 1 : j'utilise le champ "Colonne" dans une macro. A chaque changement d'utilisateur "étranger", la macro génère une erreur normale (le champ "Colonne" n'existe plus lors d'une utilisation par un collègue espagnol, puisqu'il est devenu Columna)
Conséquence 2 : les étiquettes ligne et colonne, ainsi que la somme valeur deviennent vides. Obligation de réaffecter les champs et re-synthétiser les valeurs (somme)
Pour illustrer le problème :
- en PJ, 1 fichier exemple d'un TCD équivalent avec sa représentation en langage France et sa représentation en langage espagnol
- le bout de code que j'utilise sur ce TCD
Code:Sheets("TCD NATALITE").PivotTables("TCD NATALITE").PivotCache.Refresh Set feuille = Worksheets("TCD NATALITE") 'TCD = nom de la feuille où se trouve le TCD pt = "TCD NATALITE" 'Nom du TCD champ = "Colonne" 'Nom du champ où l'on ne veut pas voir les Vides With feuille.PivotTables(pt) .ClearAllFilters .PivotFields(champ).EnableMultiplePageItems = True .PivotFields(champ).AutoSort xlAscending, "Colonne" End With For Each pi In feuille.PivotTables(pt).PivotFields(champ).PivotItems If pi = "(blank)" Then pi.Visible = False If pi = "Total général" Then pi.Visible = False Next pi
En solution, j'imagine de renommer avec condition les champs avant actualisation , par exemple :
Si un pivotfield est nommé "Columna", alors le renommer "Colonne"
Si un pivotfield est nommé "Fila", alors le renommer "Ligne"
Si un pivotfield est nommé "Valor", alors le renommer "Valeur"
J'aurais besoin d'un coup de main pour écrire le code correspondant (si la solution est réaliste)
Peut être que je cherche à compliquer les choses et qu'il y a une astuce plus simple ?
Merci d'avance pour votre expertise et votre aide.
Cordialement