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 :

Manipulation de graphiques par une macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut Manipulation de graphiques par une macro
    Salut tout le monde,

    J'ai un probleme concernant la creation de graphiques par une macro.

    J'ai commence par faire l'enregistrement de la creation manuelle d'un graphique que je met legerement en forme. Jusqu'ici tout va bien.
    Mais quand j'execute la macro enregistree, evidemment ca plante.

    La macro a ete enregistre avec un graphique qui apparait dans le code sous le nom de "Graphique 13", et j'imagine que le nom par defaut du graphique est incremente a chaque nouveau graphique cree.

    Mais le probleme, c'est que si je donne moi-meme un nom au graphique (je rajoute ActiveChart.Name = "NomDuGraphique" apres Charts.Add et avant ActiveChart.Charttype = bla bla) et que je modifie les noms donnes automatiquement dans la suite du code, ca plante encore !
    Il semble que lors de l'execution, le nom que j'ai moi-meme donne au graphique n'est pas reconnu (Notamment au niveau des "ActiveSheet.Shapes("NomDuGraphique").

    Y-a-t-il une solution a ce probleme ?

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Je viens de detecter un phenomene paranormal

    J'ai recommence la procedure d'enregistrement, que j'ai modifiee avec un "MsgBox ActiveChart.Name" pour faire apparaitre le nom du graphique.

    La macro lui donne le nom Graphique 18 (j'ai refait quelques test depuis le 1er message) et la boite de dialogue me donne Graphique 48

    Help, I'm lost

  3. #3
    Expert confirmé

    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
    Par défaut
    bonsoir

    Tu peux utiliser le type de syntaxe ci dessous pour renommer le graphique et utiliser et le manipuler à partir de ce nom


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim NbGraph As Integer
     
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
    'compte le nombre de graphiques dans la feuille
    NbGraph = ActiveSheet.ChartObjects.Count
    'le nouveau graphique correspond à l'index le plus élevé
    ActiveSheet.ChartObjects(NbGraph).Name = "Le nom du Graphique"
     
    'Applique une couleur de fond
    ActiveSheet.ChartObjects("Le nom du Graphique").Chart.ChartArea. _
        Format.Fill.ForeColor.RGB = RGB(255, 205, 225)


    michel

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Ok, je vais voir ce que ca donne.

    Merci.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Tu ne sait quand même pas affiché 13 (ou plus) graphiques sur une même feuille ?
    Alors pourquoi les renommer ?
    Pourquoi en faire plusieurs ? à la limites 3/4
    A ce moment mettre toutes les données dans l'un ou l'autre des graphiques affichés.
    C'est pas compliqué par macro.
    Je comprend pas bien ce que tu veux faire.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 69
    Par défaut
    Nan, le truc c'est qu'a chaque fois que je cree un nouveau graphique, le nom qui lui est automatiquement donne est incremente, meme si j'ai efface les graphiques precedents.
    Je m'amuse pas a afficher 13 graphiques a la fois, c'est juste que j'ai fait pas mal de tests et que j'ai relance la macro un certain nombre de fois apres modifs.

    Le probleme que j'avais, c'est que quand je renommais le graphique dans une macro enregistree (par exemple "Mon Graphique" au lieu de "graphique 13" pour la macro enregistre apres avoir fait 13 tests) et que je modifiais par consequent le nom du graphique dans tout le reste du code, le programme ne semblait pas tenir compte du nouveau nom et me balancait une erreur.
    Mais bon j'ai ruse depuis et j'utilise une autre methode.

Discussions similaires

  1. [XL-2007] Comment régler le format de l'axe d'un graphique créé par une macro ?
    Par BastLat dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2014, 10h07
  2. Imprimer un graph par une macro
    Par man_coef dans le forum Général VBA
    Réponses: 2
    Dernier message: 10/10/2006, 11h28
  3. Réponses: 3
    Dernier message: 14/04/2006, 10h43
  4. lancer une sub par une macro
    Par ganizate dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 15h01
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

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