IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modif format MOIS dans TCD


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Orakle
    Homme Profil pro
    Responsable Informatique
    Inscrit en
    Mars 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable Informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2004
    Messages : 204
    Par défaut Modif format MOIS dans TCD
    Bonjour,

    à la création d'un TCD sous VBA je cherche à modifier le format 01 qui correspond à une valeur de mois en "JANVIER"

    Si je sais que ma valeur doit être "mmmm"

    je ne sais pas comment la passer dans ma commande, j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOIS")
            .Orientation = xlColumnField
            .Position = 3
            .FormatNum = Format(Date, "mmmm")
    End With
    ou encore plus simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOIS")
            .Orientation = xlColumnField
            .Position = 3
            .FormatNum = "mmmm"
    End With
    Mais je vois bien que ce n'est pas ça, quelqu'un aurait une idée de la bonne syntaxe svp? je tourne en rond

    Merci à vous

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 684
    Par défaut
    Bonjour,

    Quand je rencontre ce genre de problème, j'utilise l'enregistreur de macro.
    Allume le fait ta modif "à la main" et vas voir ensuite le code obtenu.

    edit:

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Ne serait-il pas plus simple de créer le TCD en Excel? On a rarement besoin de créer et de formater le TCD en VBA, me semble-t-il.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre confirmé Avatar de Orakle
    Homme Profil pro
    Responsable Informatique
    Inscrit en
    Mars 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable Informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2004
    Messages : 204
    Par défaut
    Bon je me suis débrouillé autrement.

    En fait je passe mon format "mmmm" sur la feuille de données avant de créer mon TCD puisque cela ne gène pas mon exploitant. Mais pour vous répondre :

    @halaster : oui j'ai pour habitude de faire cela pour générer mon code lorsque je suis en panne d'inspiration, c'est juste que dans ma description je n'avais cité que 2 cas parmi l'ensemble de mes essais. Sauf que là ta solution me génère quand même une erreur : erreur 1004 : Impossible de définir la propriété NumberFormat de la classe PivotField.

    @Pierre : ce n'est pas si simple (sinon j'aurai pas demandé) d'origine mon code est plus complexe. Dans mon fichier de travail, je récupère 5 fichiers Excel, issus d'extractions de différents logiciels, que j'exploite et que je remets en forme avant de créer ce TCD (pour avoir justement des formats uniques sur des champs type date code postaux et autre montants HT etc...) donc plutôt que de laisser l'exploitant faire le TCD au final qui lui fait perdre encore du temps je le créé directement en VBE avec le reste de mon code. (je viens de comprendre que c'est le terme VBA qui t'a égaré sur la compréhension de ma demande mea culpa)

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 587
    Par défaut
    Bonjour

    100% d'accord avec Pierre

    Tu parles d'un mois et non d'une date ? Quel est le format initial du champ ?

    A noter que dans un TCD le formatage n'est possible que sur un champ date, pas sur un regroupement.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tracasse. Je fais la différence entre vbe et vba... 😉

    Malgré tes explications, je maintiens que tu dois créer ton tableau source du tcd ET ton tcd en Excel, et n'utiliser vba que pour injecter tes cinq tableaux dans le tableau source et mettre ton tcd à jour. Ton patron n'a pas à créer le tcd puisque tu l'a fait pour lui...

    Essaie ma méthode, confirmée par 78Chris. Tu verras qu'elle est plus simple que de créer un tcd en vba.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre confirmé Avatar de Orakle
    Homme Profil pro
    Responsable Informatique
    Inscrit en
    Mars 2004
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable Informatique
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2004
    Messages : 204
    Par défaut
    Alors peut être que j'aurai pu arriver au résultat plus simplement avec plus d'expérience sur mon code, mais le résultat est là tout de même.

    Donc je récap,

    Dans 1 fichier Excel tout en VBE (Fichier de Travail) sur ouverture je vais chercher 1 fichier xls extrait d'un TMS et 4 autres fichiers xls issus d'un autre TMS de version plus ancienne. Les champs date, numérique n'étant pas formaté de la même manière ni même colonné pareil, j'ai du partir sur le plus récent et "re"positionner les colonnes pour qu'il ajoute l'ensemble des données des fichiers plus anciens.

    Ensuite les dates n'étant pas de même format (entre anciens et nouveau fichiers (année sur 2 et année sur 4)) et parce que j'avais besoin de séparer mois et année pour mon TCD j'ai formaté sur la date et ajouté 2 colonnes en faisant cette séparation. (Année sur 4 et mois maintenant en "mmmm")
    A l'origine je souhaitais donc formater mon champs "MOIS" qui était en format 01; 02; 03. etc en format janvier; février; etc directement après avoir créé le TCD (donc plus loin dans mon code) au moment ou je sélectionne MOIS pour l'ajouter. Mais je me suis ravis et l'ai modifié directement au moment de la séparation des champs mois/année

    J'espère que j'ai été clair!?!?

    @Pierre ce que je ne comprends pas dans tes propos, c'est que j'ai bien mon tableau source de mon tcd (c'est ce que j'appelle mon fichier de travail)et mon tcd en Excel dans une autre feuille à côté...
    Ce que tu veux dire c'est que je ne devrais pas le recréer à chaque fois? C'est pas le temps que ça prends un fois que j'en suis là...

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si dans ton tableau source tu as une colonne avec des dates, tu n'as pas besoin de créer des colonnes supplémentaires. Par clic droit sur une date dans le tcd, tu pourras grouper sur les mois et les années et cela ajoutera ces deux dimensions au tcd. De plus, tes mois apparaîtront au format textuel.

    La manip est probablement un peu différente sur Mac mais je suppose que ça doit le faire
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XL-2016] Date transformé en mois dans TCD
    Par Tomz57 dans le forum Excel
    Réponses: 6
    Dernier message: 22/02/2018, 16h18
  2. [XL-2010] Format champ calculé en % dans TCD
    Par Denis_67 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/02/2014, 22h37
  3. [XL 2007] 12 mois glissants dans TCD presque résolu
    Par fredsgar dans le forum Excel
    Réponses: 7
    Dernier message: 16/09/2013, 10h11
  4. [XL-2007] Modif Plage valeur dans TCD
    Par Mikadox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2012, 18h28
  5. Format des graphiques dans TCD
    Par akira66fr dans le forum Excel
    Réponses: 2
    Dernier message: 21/03/2008, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo