[VBA Excel] Création d'un graphique

Signaler
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014
-
Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007
-
Bonjour,

je suis en train de réaliser une macro pour traiter un ensemble de données.

Pour diverses caractéristiques, j'ai calculé la valeur d'un individu ainsi que le minimum, le max, la moyenne et la médiane d'un échantillon comparatif.

Ce que j'aimerais faire, c'est réaliser une sorte d'histogramme permettant de caractériser l'individu en question.
Chacune des colonnes correspondrait à une caractéristique, la hauteur de la colonne serait la valeur pour cet individu. J'aimerais également faire figurer pour chaque colonne les grandeurs de l'échantillon (min, max, moy et med). J'espère que je suis suffisament clair ...

quelqu'un aurait-il quelques pistes pour m'orienter ??

merci

9 réponses

Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

j'ai trouvé comment faire pour superposer en utilisant les styles personnalisés de graphs mais par contre j'ai d'autres soucis


j'ai crée un tableau


dim TabG
TabG=array()


que je remplis ainsi


ReDim TabG(0 To 5, 1 To 4)
    For i = 1 To 4
        TabG(0, i) = Cells(1, ColN + i)
        TabG(1, i) = Cells(2, ColN + i)
        For j = 2 To 5
            TabG(j, i) = Cells(LgEt - 2, ColN + i)
        Next
    Next


et je m'en sers ensuite comme donnée source pour mon graph


For i = 1 To 5
    ActiveChart.SeriesCollection(i).XValues = TabG.Rows(0)
    ActiveChart.SeriesCollection(i).Values = TabG.Rows(i)
Next


mais çà ne marche pas, çà coince sur les dernières lignes avec l'erreur 13 : incompatibilité de type
Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007

Je ne connais pas cette propriété rows et je me demande si le problème ne vient pas de là.
Un truc qui marche consiste à stocker les valeurs dans un tabeau à une seule dimension.
Si tu l'appelle mes_valeurs = array()
ActiveChart.SeriesCollection(i).XValues = mes_vleurs marche bien
Mais cela suppose de redéfinir les valeurs contenues dans mes_valeurs à chaque boucle, en fonction de celles stockées dans TabG

Autrement basiquement, tu écris les valeurs dans une variable string contenant les valeurs séparées par des virgules et ça marche bien aussi.
ActiveChart.SeriesCollection(i).XValues = "3,6,7"

La haine aveugle n'est pas sourde
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

J'ai réécrit mon code en utilisant des strings comme l'as suggéré :

Dim TabG(0 To 5) As String

j'affecte les valeurs à chaque TabG(i) par concaténation et ensuite j'utilise ces données par :

For i = 1 To 5
    ActiveChart.SeriesCollection(i).XValues = TabG(0)
    ActiveChart.SeriesCollection(i).Values = TabG(i)
Next

mais çà coince encore, voici le message :

Erreur d'exécution 1004 : la méthode SeriesCollection de l'objet _Chart a échoué

et la première ligne activechart est surlignée
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

la macro me trace la première série du graph et bloque après
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

aucune idée en vue ?????
Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007

Ton problème vient du fait que tu dois créer les séries qui n'existent pas encore avant de les définir.

Donc là, tu fais la modif suivante :

ActiveSheet.ChartObjects("Graphique 2").Activate
nse = ActiveChart.SeriesCollection.Count
For i = 1 To 5
    If i > nse Then ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(i).XValues = TabG(0)
    ActiveChart.SeriesCollection(i).Values = TabG(i)
Next

Et là, ça devrait fonctionner.

La haine aveugle n'est pas sourde
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

super merci beaucoup, çà marche !!!!!!!!!
Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007

Messages postés
69
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
14 décembre 2007

Pas de quoi.

La haine aveugle n'est pas sourde