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 :

VBA: création graphique en nuages de points (Excel 2007)


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut VBA: création graphique en nuages de points (Excel 2007)
    Bonjour,

    J'ai essayé de créer une macro qui me créé un graphique "nuage de points" à partir de données sous excel:
    une ligne de valeurs correspondant aux abscisses
    une autre ligne de valeurs correspondant aux ordonnées

    J'ai fait une macro en faisant l'enregistrement et quand je l'exécute il m'affiche n'importe quoi (4 nuages de point).

    Est-ce que vous auriez la syntaxe pour réaliser une telle macro ?

    Merci d'avance
    Aurélien

    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
     
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatter
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).XValues = "=Portefeuille_optimal!$E$7:$BEV$7"
    ActiveChart.SeriesCollection(1).Values = "=Portefeuille_optimal!$E$5:$BEV$5"
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:= _
    "Réprésentation_graphique"
    ActiveChart.ApplyLayout (1)
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartTitle.Select
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Legend.Select
    Selection.Delete
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).AxisTitle.Select
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).AxisTitle.Select

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour !

    Ceci devrait faire l'affaire ...

    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
    Sub CreationGraph()
        Dim oGraph As Shape
        Dim oSerie As Series
     
        Set oGraph = ActiveSheet.Shapes.AddChart
     
        With oGraph.Chart
            .ChartType = xlXYScatter
            .HasLegend = False
            Set oSerie = .SeriesCollection.NewSeries
            With oSerie
                .XValues = Range("Portefeuille_optimal!$E$7:$BEV$7")
               .Values = Range("Portefeuille_optimal!$E$5:$BEV$5")
            End With
        End With
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai essayé ce que vous m'avez donné mais il fait encore les 4 séries dont une seule correspond à ce que veux.

    Je fais vraiment pas quoi faire...

    Merci d'avance

    Aurélien

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ben, moi, quand je lance cette macro, il ne fait qu'une seule série !
    Il n'a pas de raison d'en faire 4 puisqu'on n'en propose qu'une seule dans le code.

    D'où ma question : as-tu essayé d'exécuter SEULEMENT ce code ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    J'ai trouvé la solution sur une ancienne macro qui me trace le nuage de points ainsi qu'une droite. Voici le code:
    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
    ' graphique
      Sheets("Portefeuille_optimal").Range(Cells(compteur + 3, 5), Cells(compteur + 3, 1504)).Select
      ActiveSheet.Shapes.AddChart.Select
      ActiveChart.ChartType = xlXYScatter
      ActiveChart.PlotArea.Select
      ActiveChart.SeriesCollection.NewSeries
      ActiveChart.SeriesCollection(2).Values = Range(Cells(compteur + 10, 5), Cells(compteur + 10, 1504))
      ActiveChart.SeriesCollection(1).XValues = Range(Cells(compteur + 5, 5), Cells(compteur + 5, 1504)) 'étiquettes
      ActiveChart.SeriesCollection(2).XValues = Range(Cells(compteur + 9, 5), Cells(compteur + 9, 1504)) 'étiquettes
      ActiveChart.SeriesCollection(2).ChartType = xlXYScatterSmoothNoMarkers
      ActiveChart.Location Where:=xlLocationAsNewSheet
      ActiveChart.SetElement (msoElementChartTitleAboveChart)
      ActiveChart.SetElement (msoElementChartTitleAboveChart)
      ActiveChart.ChartTitle.Text = _
          "Rentabilité en fonction de la volatilité"
      ActiveChart.Legend.Delete
      ActiveSheet.Name = "Représentation_graphique"
    Par contre, il est vrai que c'est incompréhensible sachant que c'est le seul graphique que j'ai créé.

    Merci quand même.

    Aurélien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2013, 11h42
  2. [XL-2007] MACRO - Création d'un nuage de points avec des couleurs differentes
    Par pachalcs dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/01/2011, 10h03
  3. Graphique en nuage de points
    Par Loki83 dans le forum Excel
    Réponses: 1
    Dernier message: 18/11/2008, 10h50
  4. problème EXCEL :graphique de nuage de points
    Par RIZOU dans le forum Excel
    Réponses: 1
    Dernier message: 20/04/2007, 09h00
  5. Type de graphique histhogramme-nuage de point
    Par god0126 dans le forum Access
    Réponses: 6
    Dernier message: 13/07/2006, 17h37

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