mise à jour TCD avec macro sur un champs spécifique

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

sigma

XLDnaute Occasionnel
Bonjour à tous,

j'ai un TCD avec des données dans un format spécial (n° sécurité sociale), à chaque fois qu'il rafraichit il ne respecte pas le format voulu. J'ai donc, avec l'aide de l'enregistreur de macro réaliser une macro qui me donne le bon format, sauf que... celle ci sélectionne une colonne (E), donc si je dois ajouter des données à mon TCD, ma macro n'aura aucun intérêt.
Je présume que je peux choisir le champs de mon TCD sur lequel appliquer ma macro mais je n'arrie pas à touver le bon language.
Imaginons que le champs à mettre en forme se nomme "toto", quel language dois je utiliser ?

Merci à tous
A+

Private Sub Worksheet_Calculate()
Columns("E:E").Select
ActiveSheet.PivotTables ("Tableau croisé dynamique2")
Selection.NumberFormat = _
"[>=3000000000000]#"" ""##"" ""##"" ""##"" ""###"" ""###"" | ""##;#"" ""##"" ""##"" ""##"" ""###"" ""###"
Columns("E:E").EntireColumn.AutoFit
Range("A1").Select
 
Re : mise à jour TCD avec macro sur un champs spécifique

re,
j'ai paufiné un peu et j'arrive à ces lignes de code mais j'ai une rreur 438, "propriété ou méthode non gérée par cet objet.

Private Sub Worksheet_Calculate()

ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("toto").Selection.NumberFormat = "[>=3000000000000]#"" ""##"" ""##"" ""##"" ""###"" ""###"" | ""##;#"" ""##"" ""##"" ""##"" ""###"" ""###"
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("toto").EntireColumn.AutoFit
Range("A1").Select
End Sub

A+
 
Re : mise à jour TCD avec macro sur un champs spécifique

Bonjour,

peut être comme ceci, la "selection" en moins :
Code:
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("toto").NumberFormat = _
    "[>=3000000000000]#"" ""##"" ""##"" ""##"" ""###"" ""###"" | ""##;#"" ""##"" ""##"" ""##"" ""###"" ""###"

pas vérifié la pertinence du format...

bonne journée
@+
 
Re : mise à jour TCD avec macro sur un champs spécifique

Bonjour Pierrot,
peu de succès, il m'annonce une erreur 1004, "impossible de lire le propriété pivot field de la classe pivot table".
la macro est dans ma feuille, si je passe par un module ça peut changer quelque chose ?

merci
A+
 
Re : mise à jour TCD avec macro sur un champs spécifique

Re,

la macro est dans ma feuille, si je passe par un module ça peut changer quelque chose ?
Sans doute préférable dans un module, mais pas sûr que ce soit la cause.... teste, tu le sauras vite.... sinon place un petit fichier en pièce jointe représentant uniquement le problme posé....
 
Re : mise à jour TCD avec macro sur un champs spécifique

Re,

code ci-dessous fonctionne chez moi sur ton fichier, à noter code placé dans un module standard.....
Code:
Option Explicit
Sub test()
ActiveSheet.PivotTables(1).PivotFields("toto").NumberFormat = _
    "[>=3000000000000]#"" ""##"" ""##"" ""##"" ""###"" ""###"" | ""##;#"" ""##"" ""##"" ""##"" ""###"" ""###"
End Sub
 
Re : mise à jour TCD avec macro sur un champs spécifique

Re,

"option explicit" sur la première ligne du module.... comme proposé... ton dernier "select" est invalide, manque le "t" ...
Code:
Option Explicit
Sub test()
ActiveSheet.PivotTables(1).PivotFields("toto").NumberFormat = _
    "[>=3000000000000]#"" ""##"" ""##"" ""##"" ""###"" ""###"" | ""##;#"" ""##"" ""##"" ""##"" ""###"" ""###"
End Sub
 
- 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

Discussions similaires

Retour