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

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
 

sigma

XLDnaute Occasionnel
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+
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

sigma

XLDnaute Occasionnel
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+
 

Pierrot93

XLDnaute Barbatruc
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é....
 

sigma

XLDnaute Occasionnel
Re : mise à jour TCD avec macro sur un champs spécifique

re,
vois ci un exemple, sur le TCD en feuille 4, je voudrai réaliser une macro qui me mette dans le format "sécurité sociale" le champs "toto".

Merci beaucoup
A+
 

Pièces jointes

  • test.xls
    13.5 KB · Affichages: 42
  • test.xls
    13.5 KB · Affichages: 43
  • test.xls
    13.5 KB · Affichages: 46

Pierrot93

XLDnaute Barbatruc
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
 

sigma

XLDnaute Occasionnel
Re : mise à jour TCD avec macro sur un champs spécifique

re, oui..
Je te joins le fichier avec la macro à l'intérieur.
Meric à toi.
A+
 

Pièces jointes

  • test.xls
    27.5 KB · Affichages: 43
  • test.xls
    27.5 KB · Affichages: 48
  • test.xls
    27.5 KB · Affichages: 47

Pierrot93

XLDnaute Barbatruc
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote