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 de graphiques "dynamiques"


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
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut création de graphiques "dynamiques"
    Bonjour a tous,

    J'ai fait un petit programme qui suit des données sur plusieurs sociétés et je voudrais mettre ces données sur des graphiques.
    Mon probleme est que je sais créer des graphiques par : Charts.Add mais je ne sais pas les renommer pour pouvoir les "retrouver" et les mettre a jour par la suite.

    est ce que quelqu'un pourrait me donner la syntaxe pour renommer un graphique et changer les fameux "Graphique X"

    Merci d'avance

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    un exemple pour un graphique dans une nouvelle feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim MyG As Chart
    Dim MyChartName As String 'le nom du graphique 
    Set MyG = Charts.Add(After:=ThisWorkbook.Sheets(Sheets.Count))
     
    With MyG
        .Name = MyChartName
        .ChartType = xl3DColumnClustered
        .SetSourceData Source:=MyCell, PlotBy:=xlColumns 'ici Mycell represente la source
        .Location Where:=xlLocationAsNewSheet
        .HasTitle = True
        .HasDataTable = True
        .ChartTitle.Characters.Text = "Activité.." & "  " &     
        .RightAngleAxes = True
    End With
    Tu peux aussi utiliser l'enregistreur de macro et adapter à ce que tu veux faire.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    OK... je vais voir ce que je peux faire avec ça... merci...

    une question cependant...

    là, le graphique est créé dans un onglet specifique... Je voudrais créé des graphiques dans une feuille "normale"...

    j'imagine que c'est possible...

    De plus, je ne sais pas combien de graphiques je vais créer ( suivant le nombre de société que j'ai à traiter, nombre qui change a chaque fois )

    donc, le fait de créer des variables "graphique" en nombre fini me pose un petit probleme...

    Merci encore

  4. #4
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    là, le graphique est créé dans un onglet specifique... Je voudrais créé des graphiques dans une feuille "normale"...

    j'imagine que c'est possible...
    Oui c'est possible.

    De plus, je ne sais pas combien de graphiques je vais créer ( suivant le nombre de société que j'ai à traiter, nombre qui change a chaque fois )

    donc, le fait de créer des variables "graphique" en nombre fini me pose un petit probleme...
    Tout cela n'est pas très comprenhensible pour quelqu'un qui n'est pas dans ton projet.

    Par rapport a ce que tu dis, commence par faire dans excel ce que tu veux faire exactement en commencant par un graphique avec l'enregistreur de macro.
    Tu vas obtenir une trame que tu pourras utiliser.
    Ensuite tu nous dis là ou tu coinces.
    Merci

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    bon... voilà ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For i = 1 To nbcompany - 1
     
        Set MyG = Charts.Add
     
        With MyG
            .Name = tabl(i, 1)
            .ChartType = xlLineMarkers
            .HasTitle = True
            .ChartTitle.Characters.Text = tabl(i, 1)
            .Location Where:=xlLocationAsObject, Name:="GRAPHIQUE par société"
        End With
     
    Next i
    lors de la premiere boucle, ça marche... il me cré le graphique
    lors de la seconde boucle il me met un erreur en arrivant sur ".hastitle = true" !!!

    Maintenant, je voudrais aussi pourvoir deplacer les graphique que le systeme cré pour ne pas les avoir superposés.

    Voilà où j'en suis...

    Merci a aalex_38

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    En fait si tu mets le nom dans location et le nom dans name, il y a un plantage c'est ou l'un ou l'autre.
    j'ai repris ton code, un exemple a adapter qui fonctionne :

    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
    Dim Myg As Chart
    '...
    For i = 1 To nbcompany - 1
     
        Set Myg = Charts.Add(After:=ThisWorkbook.Sheets(Sheets.Count))
     
        With Myg
        ' .Name = tabl(i)
            .ChartType = xlLineMarkers
            .SetSourceData Source:=Sheets("Feuil1").Range("A1:B19"), PlotBy:=xlColumns
            .HasTitle = True
            .ChartTitle.Characters.Text = tabl(i)
            .Location Where:=xlLocationAsNewSheet, Name:=tabl(i)
        End With
     
    Next i

Discussions similaires

  1. [xsl]simuler le mecanisme OO de "liaison dynamique"
    Par philemon_siclone dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 19/12/2003, 11h34

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