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 :

Graphique sur vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut Graphique sur vba
    Bonjour,
    j'ai un petit problème concernant la syntaxe de graphique sur vba.
    En effet j'ai testé les deux codes suivants censés créer le même graphe, je ne comprend absolument pas ou est l'erreur de synthaxe:

    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
     Sheets("données").Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range("D5:D280,G5:K280")
        ActiveChart.ChartType = xlStockVOHLC
        ActiveChart.SeriesCollection(1).Name = "=""Volume"""
        ActiveChart.SeriesCollection(1).Values = "='Alstom'!$K$5:$K$280"
        ActiveChart.SeriesCollection(2).Name = "=""Ouverture"""
        ActiveChart.SeriesCollection(2).Values = "='Alstom'!$G$5:$G$280"
        ActiveChart.SeriesCollection(3).Name = "=""Plus Bas"""
        ActiveChart.SeriesCollection(3).Values = "='Alstom'!$H$5:$H$280"
        ActiveChart.SeriesCollection(4).Name = "=""Plus Haut"""
        ActiveChart.SeriesCollection(4).Values = "='Alstom'!$I$5:$I$280"
        ActiveChart.SeriesCollection(5).Name = "=""Cloture"""
        ActiveChart.SeriesCollection(5).Values = "='Alstom'!$J$5:$J$280"
     
        ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Evol Action"
        ActiveChart.ApplyLayout (1)
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Text = "Alstom"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Select
    et
    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
     
        Charts.Add
        With ActiveChart
            .ChartType = xlStockVOHLC
            .SetSourceData Source:=Sheets("données").Range("D5:D280,G5:K280"), PlotBy:=xlColumns
            .Location Where:=xlLocationAsObject, Name:="données"
        End With
     
        ActiveChart.SeriesCollection(1).Name = "=""Volume"""
        ActiveChart.SeriesCollection(1).Values = "='Alstom'!$K$5:$K$280"
        ActiveChart.SeriesCollection(2).Name = "=""Ouverture"""
        ActiveChart.SeriesCollection(2).Values = "='Alstom'!$G$5:$G$280"
        ActiveChart.SeriesCollection(3).Name = "=""Plus Bas"""
        ActiveChart.SeriesCollection(3).Values = "='Alstom'!$H$5:$H$280"
        ActiveChart.SeriesCollection(4).Name = "=""Plus Haut"""
        ActiveChart.SeriesCollection(4).Values = "='Alstom'!$I$5:$I$280"
        ActiveChart.SeriesCollection(5).Name = "=""Cloture"""
        ActiveChart.SeriesCollection(5).Values = "='Alstom'!$J$5:$J$280"
     
        ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Evol Action"
        ActiveChart.ApplyLayout (1)
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Text = "Alstom"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Select
    Systématiquement la ligne de création du graphe bugge : ActiveSheet.Shapes.AddChart.Select ou Charts.Add

    Y aurait-il une écriture alternative qui fonctionnerait ?

    Merci d'avance de vos réponses

  2. #2
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    Salut,

    Je n'utilise pas Office 2007, mais = "=" ne me semble pas être la bonne forme d'écriture essaye :

    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
     
     
        Charts.Add
        With ActiveChart
            .ChartType = xlStockVOHLC
            .SetSourceData Source:=Sheets("données").Range("D5:D280,G5:K280"), PlotBy:=xlColumns
            .Location Where:=xlLocationAsObject, Name:="données"
        End With
     
        ActiveChart.SeriesCollection(1).Name = "Volume"
        ActiveChart.SeriesCollection(1).Values = "'Alstom'!$K$5:$K$280"
        ActiveChart.SeriesCollection(2).Name = "Ouverture"
        ActiveChart.SeriesCollection(2).Values = "'Alstom'!$G$5:$G$280"
        ActiveChart.SeriesCollection(3).Name = "Plus Bas"
        ActiveChart.SeriesCollection(3).Values = "'Alstom'!$H$5:$H$280"
        ActiveChart.SeriesCollection(4).Name = "Plus Haut"
        ActiveChart.SeriesCollection(4).Values = "'Alstom'!$I$5:$I$280"
        ActiveChart.SeriesCollection(5).Name = "Cloture"
        ActiveChart.SeriesCollection(5).Values = "'Alstom'!$J$5:$J$280"
     
        ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Evol Action"
        ActiveChart.ApplyLayout (1)
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartTitle.Text = "Alstom"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Select
    Tremens

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut
    Merci tremens... mais malheureusement ca ne marche toujours pas ...!!!

  4. #4
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : technicien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    Le problème peut aussi venir de ta plage de données qui me semble disjointe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("D5:D280,G5:K280")
    Pour ma part je déclare la plage de données pour un graphe toujours avant de créer le graphe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With MaFeuille
     Set PlageDonnees = .Range("F13", MaFeuille.Cells(ligne, ncol))
     End With

    Il me semble quand ta plage de données est disjointe, il faut utiliser object.areas ([index])
    index = numéro de la plage au sein des différentes plages de l'objet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MaZone as Range
    'union de plusieurs plages disjointes
    set MaZone= Union (Range("D5:D280"), range("G5:K280"))
     
    with MaZone
    .areas(1).value= array("Volume", ("......"), ...)
    Je suis débutant comme toi, mais je chercherai dans ce sens, sinon attends la confirmation par un expert du forum...

    Si cela peut t'aider...il faut persévérer...

    Tremens

Discussions similaires

  1. [XL-2010] Créer un graphique sur VBA à partir d'excel
    Par mariecaro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/06/2013, 15h45
  2. [XL-2007] Questions sur la création d'un graphique par VBA
    Par Kimy_Ire dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/10/2012, 14h48
  3. [XL-2003] comment programmer un graphique en bâton et en camembert sur vba?
    Par hobine dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2011, 22h45
  4. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  5. [VBA-E] Creation d'un graphique sur une userform
    Par size_one_1 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/12/2006, 17h15

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