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 :

création d'un titre de graphique [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut création d'un titre de graphique
    Bonjour,

    je bute sur un problème sur la création d'un graphique. j'ai créé un graphique à partir d'une plage dynamique, j'ai adapté la taille de ce graphique au nombre d'éléments à y faire figurer. je souhaiterais à présent ajouter un titre et virer la légende qui ne me sert à rien. j'ai parcouru les topics sur ce sujet, qui m'ont bien aidé à créer le graphique, mais impossible d'aller plus loin sur les éléments titre et légende. j'ai essayé une première méthode basée sur le nom donné à mon graphique (graphe), mais la deuxième ligne (ligne 12) bloque car ma commande chartTitle.Text semble ne pas être la bonne.
    J'ai trouvé une deuxième approche en dessous, basée sur l'activation de mon graphique, mais la première ligne (ligne 16) bloque car l'élément graphe est introuvable (j'ai essayé avec graphe et "graphe"). J'ai l'impression que le nom de graphe que j'ai pensé donner à mon graphique s'applique à autre chose et je ne vois pas trop où j'ai fait une erreur.
    Merci de votre aide en la matière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Set plage = Union(Sheets("travail").Range(Cells(5, 3), Cells(5, i - 1)), Sheets("travail").Range(Cells(1, 3), Cells(1, i - 1)))
     
    titre = "test"
     
    Dim graphe As ChartObject
     
    Set graphe = Sheets("commandes").ChartObjects.Add(Left:=10, Width:=(i / 6) * 200, Top:=220, Height:=200)
    graphe.Chart.SetSourceData Source:=plage
     
    'graphe.Chart.HasTitle = True
    'graphe.ChartTitle.Text = titre
    'graphe.Legend.Select
    'Selection.Delete
     
    ActiveSheet.ChartObjects(graphe).Activate
        ActiveChart.SetElement (msoElementChartTitleAboveChart)
        ActiveChart.ChartTitle.Text = titre
        ActiveChart.Legend.Select
        Selection.Delete

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

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Pour ajouter un titre au graphique, la syntaxe correcte est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.ChartTitle.Characters.Text = titre
    Cdlt

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Pour ajouter un titre au graphique, la syntaxe correcte est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.ChartTitle.Characters.Text = titre
    Cdlt
    Merci, mais j'ai toujours les mêmes problèmes. Si j'essaie avec ma première stratégie,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    graphe.Chart.HasTitle = True
    graphe.ChartTitle.Characters.Text = titre
    il m'indique une méthode ou propriété non gérée

    si j'essaie avec la deuxième,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.ChartObjects(graphe).Activate
    ActiveChart.SetElement (msoElementChartTitleAboveChart)
    ActiveChart.ChartTitle.Characters.Text = titre
    il m'indique que l’élément portant ce nom est introuvable

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

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonsoir,

    "Graphe" est-ce le nom du graphique ou bien un nom de variable attribué à ce graphique?

    Vous ne montrez qu'un bout de code, donc on manque de visibilité pour en dire plus.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    j'avais mis le code plus haut. dans mon esprit graphe était le nom du graphique, mais je dois me tromper au vu des messages d'erreur. par contre, je ne sais pas comment se nomme ce graphique, ni comment agir dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Set plage = Union(Sheets("travail").Range(Cells(5, 3), Cells(5, i - 1)), Sheets("travail").Range(Cells(1, 3), Cells(1, i - 1)))
     
    titre = "test"
     
    Dim graphe As ChartObject
     
    Set graphe = Sheets("commandes").ChartObjects.Add(Left:=10, Width:=(i / 6) * 200, Top:=220, Height:=200)
    graphe.Chart.SetSourceData Source:=plage
     
    'graphe.Chart.HasTitle = True
    'graphe.ChartTitle.Text = titre
    'graphe.Legend.Select
    'Selection.Delete
     
    ActiveSheet.ChartObjects(graphe).Activate
        ActiveChart.SetElement (msoElementChartTitleAboveChart)
        ActiveChart.ChartTitle.Text = titre
        ActiveChart.Legend.Select
        Selection.Delete

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    je mets le code complet de la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub graphique()
     
    Dim titre As String
    Dim plage As Range
    Dim i As Integer
     
     i = 3
     Do While Sheets("travail").Cells(1, i) <> ""
     i = i + 1
     Loop
     
    Set plage = Union(Sheets("travail").Range(Cells(5, 3), Cells(5, i - 1)), Sheets("travail").Range(Cells(1, 3), Cells(1, i - 1)))
     
    titre = "à faire"
    titre2 = "essai"
     
    Dim graphe As ChartObject
     
    Set graphe = Sheets("commandes").ChartObjects.Add(Left:=10, Width:=(i / 6) * 200, Top:=220, Height:=200)
    graphe.Chart.SetSourceData Source:=plage
     
     
     
    graphe.Chart.HasTitle = True
    graphe.ChartTitle.Characters.Text = titre
    'graphe.Legend.Select
    'Selection.Delete
     
    'ActiveSheet.ChartObjects(graphe).Activate
        'ActiveChart.SetElement (msoElementChartTitleAboveChart)
       ' ActiveChart.ChartTitle.Characters.Text = titre
        'ActiveChart.Legend.Select
        'Selection.Delete
     
    End Sub

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Remplacer la ligne 25 (graphe.ChartTitle.Characters.Text = titre)

    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graphe.Chart.ChartTitle.Text = titre
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 40
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Remplacer la ligne 25 (graphe.ChartTitle.Characters.Text = titre)

    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graphe.Chart.ChartTitle.Text = titre
    nickel, ça fonctionne. j'ai adapté aussi pour la légende. Si je comprends bien, l'ajout de ce .chart permet de définir le type d'objet.

    un grand merci !

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

Discussions similaires

  1. Création d'imageS à partir de graphiques
    Par jbollagnier dans le forum Excel
    Réponses: 3
    Dernier message: 08/11/2007, 19h34
  2. changer dynamiquement un titre de graphique MSGraph
    Par Philippe PONS dans le forum IHM
    Réponses: 1
    Dernier message: 24/08/2007, 12h50
  3. Modification auto de titre de graphique
    Par Nanit6 dans le forum Excel
    Réponses: 5
    Dernier message: 18/07/2007, 14h06
  4. Création de Tableau de Composant Graphique
    Par vincentRO dans le forum Graphisme
    Réponses: 2
    Dernier message: 18/05/2007, 23h50
  5. Macro Excel VBA : création automatique de 140 graphes/graphiques
    Par techneric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/02/2007, 10h13

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