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 :

générer automatiquement le titre d'un graphique croisé dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut générer automatiquement le titre d'un graphique croisé dynamique
    Bonjour

    je génère plusieurs graphiques croisés dynamiques dans mes fichiers de reporting. J'aimerai que le titre du graphique s'affiche en fonction du ou des filtres sélectionnés.
    Savez-vous comment je devrai m'y prendre svp ?

    J'avais pensé créer une macro, et plutôt que d'aller dans "Général", aller dans "Worsheet" et de là coder la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    End Sub
    Mais si je fais ça, comment de mon fichier qui lance ma macro, puis-je créer une autre macro ? Ca me paraît un peu compliqué non ?

    Avez-vous une autre idée ?

    Merci

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Exemple avec le titre récupéré dans cellule B2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = Range("B2")
        End With
    Cdlt

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Bonjour

    ok, donc je suis obligé de passer par une macro. C'est bien ce à quoi je pensais. Merci pour votre aide.

    Du coup, est-il possible qu'une macro crée une autre macro ? Je m'explique : je lance ma macro qui fait mon reporting via le fichier fichier1.xlsm. La sortie est donc un fichier excel pour mon reporting. Du coup je vais l'appeler sortie.xlsm. Mais à l'intérieur de ce nouveau fichier, il faudrait que je crée une macro qui génère le titre de mes graphiques automatiquement en fonction des items sélectionnés lors des filtres. J'adapterai votre macro à mon besoin.

    Merci

    Bonne journée

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Bonjour

    Non il y a pas mal de solution sans code mais cela dépend beaucoup du contexte, du type de TCD (source cube ou non...), sur le type de filtre... sur la version Excel...

    Or là on n'a aucune info...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    ok, je ne connais pas tout ce monde là.
    J'utilise office 2016 sous windows 7
    ma source de données est une feuille excel

    en gros mon algo est le suivant :

    1) lire tous mes fichiers de données et en faire une feuille de synthèse (=> dans mon algo j'ai un workbook.add)
    2) générer un graphique croisé dynamique
    3) sauvegarder le fichier de sortie au format xlsx

    maintenant, je voudrais que le titre du graphique croisé dynamique soit dynamique. J'aimerai qu'il affiche les champs filtrés (j'adapterai le code si on sélectionne plusieurs items d'un même champ)

    Vous faut-il d'autres informations ?

    Merci bcp

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    Re

    Si tu as 2016, le plus simple est d'utiliser PowerQuery intégré pour synthétiser les données plutôt que VBA : c'est plus simple et souvent plus efficace.

    En général ou peut combiner 2 TCD (dont un masqué) avec un segment connecté aux 2 pour filtrer, l'autre TCD avec le même champ que le segment en zone de page et on récupère les données de ce champ (par une simple formule, pas besoin de VBA.

    Combien de champ filtres-tu ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Re bonjour

    je ne connais pas powerQuery, je vais me renseigner sur google

    je fais déjà des TCD connectés entre eux. MAis en fait, quand j'ai un graphique croisé dynamique, j'aimerai que le titre soit égal à la concaténation de 2 champs filtrés.
    Dans mon TCD j'ai une dizaine de champs (les pageFields), mais si on filtre sur le champ "Usine" et/ou "PVT" alors je souhaiterai récupérer dans le titre de mon graphique la valeur de ces champs, avoir un truc du genre "mon usine - mon PVT"

    Merci pour votre aide

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    RE

    Le TCD connecté supplémentaire sert juste à recupérer les valeurs.

    Tu le mets dans un onglet, disons OngletX, et tu y places tes champs Usine et PVT en zone de filtre puis tu lies tes segments Usine et PVT à ce TCD.

    Par formule tu exploites les valeurs des deux champs de ce TCD de façon à obtenir le libellé voulu dans une cellule, mettons C1 de l'onglet OngletX.

    Tu sélectionnes le titre du TCD et dans le barre de formule, tu tapes =OngletX!C1

    Ton titre suivra les filtres.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Re-bonjour
    je n'ai pas bien compris.

    J'ai mon graphique
    j'ai mis dans la cellule F2 ma formule (ici le résultat est UMO P56)
    mais je n'arrive pas à lier le titre du graphique à ma cellule F2. Cf ma PJ exemple.png

    Pourrais-tu stp me faire des captures d'écran ?

    D'avance merci bcp
    Images attachées Images attachées  

  10. #10
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 416
    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 416
    Points : 16 259
    Points
    16 259
    Par défaut
    RE

    Tu sélectionnes le titre du graphique (le bord pas le texte)
    Dans la barre de formule tu tapes
    =
    puis tu cliques sur la cellule F2 puis tu valides

    Nom : Titre_dynamique.jpg
Affichages : 618
Taille : 114,7 Ko
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Re,

    merci, c'est beaucoup plus clair. Ceci dit, j'ai toujours le message d'erreur suivant :

    je ne vois pas encore ce que je fais mal...
    Images attachées Images attachées  

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    ok ça marche ! j'ai mis le titre de mon graphique dans une autre feuille. Je n'ai pas compris le fonctionnement d'Excel, mais au moins, ça marche.

    Un très grand merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/04/2018, 09h10
  2. [Débutant] Générer automatiquement le titre d'une page et son URL
    Par Crusy007 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 30/05/2016, 22h28
  3. Titre graphique croisé dynamique
    Par kirikou2k3 dans le forum IHM
    Réponses: 2
    Dernier message: 31/08/2009, 08h56
  4. titre de graphique croisé dynamique
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/04/2008, 16h08
  5. imprimer graphique croisé dynamique ou formulaire
    Par bossun dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/06/2004, 11h53

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