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 :

Forcer le nom d'un graphique excel en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Forcer le nom d'un graphique excel en vba
    Bonjour,
    tout d'abord, bah bonne année à tous, meilleurs voeux.

    J'ai un petit souci sur Excel.
    J'ai un graphique qui se créé automatiquement (avec une macro)
    Puis je voudrais rajouter à ma macro une partie qui au début de la macro :
    - sélectionne le graphique de la feuille active
    - supprime ce graphique
    (la suite de la macro, c'est la création d'un nouveau graphique)

    Pour cela, j'ai essayé une chose mais cela ne marche pas:

    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
     
    'suppression de l'ancien graphique
        ActiveSheet.ChartObject("graphique").Activate
        ActiveChart.ChartArea.Select
        ActiveWindow.Visible = False
        Selection.Delete
     
    'Sélection de la plage du tableau pour le graphique
        Set SourceRange = Range([G4].Offset(0, 4), [G4].End(xlDown))
        Feuilleactive = ActiveSheet.Name
     
    'Ajout du tableau
        Charts.Add
        ActiveChart.ChartType = xl3DBarClustered
        ActiveChart.Name = "graphique"
        ActiveChart.SetSourceData Source:=SourceRange, PlotBy:=xlColumns
        ActiveChart.Location Where:=xlLocationAsObject, Name:=Feuilleactive
    Comme vous pouvez le voir sur ce code, lors de la création du graphique, j'ai forcé son nom "activechart.Name = "graphique". Ce qui me permet en début de macro, de sélectionner le graphique nommé "graphique" et de le supprimer.
    Or, cela ne marche pas. Lorsque je vérifie le nom du graphique créé, il porte toujours un nom donné par excel.

    La commande activechart.Name est-elle la bonne pour nommer un graphique ? (précision, je ne parle pas du titre du graphique)

    Merci d'avance pour vos réponses.

    NiKoS29

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    tu peux tester cette macro pour supprimer le graphique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ChartObjects("NomGraphique").Delete


    cordialement
    michel

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Merci pour la réponse. Le problème, c'est qu'il y a un bug.

    "Erreur d'éxécution '1004
    Impossible de lire la propriété ChartObjects de la classe Worksheet"

    Ce qu'il y a en fait, la commande ActiveChart.Name = "Nomgraphique" ne fonctionne pas !
    Car lorsque j'exécute la macro, et qu'ensuite, je sélectionne le graphique créé avec l'enregistreur de macro, et que je regarde le code, le graphique en question n'a pas le nom donné !

    N'y aurait-il pas une autre synthaxe ?

    Merci d'avance.

    NiKoS29

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    je n'ai pas bien compris ton dernier message : tu peux essayer par les index de graphique

    pour supprimer le premier graphique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ChartObjects(1).Delete
    pour supprimer le dernier classeur créé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete


    bonne soiree
    michel

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Bonsoir,

    Encore une fois merci car cela fonctionne maintenant. J'ai utilisé la synthaxe pour supprimer le dernier objet créé.

    Peux-tu me corriger le code suivant pour que la suppression du graphique ne se fasse que s'il y en a un sur la feuille active stp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        If ActiveSheet.ChartObjects.Visible = True Then
            ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete
        End If
    Ce code ne fonctionne pas. Il me dit "impossible de lire la propriété Visible dans la classe ChartObjects".
    Ce n'est peut-être pas la bonne propriété que j'utilise ?

    PS : je sais que ça fait beaucoup de questions, mais ça fait 3 semaines que j'ai du me mettre à vba (c'était le plus pratique pour ce que je veux faire) et je n'ai pas encore eu le temps de m'acheter un bouquin ! Je vais voir ça dès ce soir.

    Merci encore.
    Bonne soirée

    NiKoS29

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    rebonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ChartObjects.Count
    permet de compter le nombre de graphiques dans la feuille , tu peux donc ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If ActiveSheet.ChartObjects.Count > 0 Then 
            ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete 
    End If

    bonne soiree
    michel

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Cool !!!!!!!!

    ça fonctionne. Merci beaucoup !

    Bonne soirée !

    Nicolas

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

Discussions similaires

  1. Mise en page graphique EXCEL via VBA Excel ne répond plus !
    Par Globetruck dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 30/06/2015, 17h48
  2. [XL-2003] Vérifier le nom d'une feuille Excel sous VBA
    Par Virk59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/08/2013, 20h51
  3. Placement de graphique Excel en VBA
    Par virstyle dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/06/2010, 19h32
  4. [XL-2000] Mise en forme de Graphique excel sous VBA
    Par Theromanator dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/04/2009, 14h43
  5. Graphiques Excel et VBA, Comment redimensionner?
    Par dav_e77 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/01/2007, 17h47

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