Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014
-
7 déc. 2007 à 11:23
caco64
Messages postés69Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention14 décembre 2007
-
12 déc. 2007 à 01:22
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 ??
Nyck0las
Messages postés83Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention 4 septembre 2014 7 déc. 2007 à 14:57
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
caco64
Messages postés69Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention14 décembre 2007 8 déc. 2007 à 00:58
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"
caco64
Messages postés69Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention14 décembre 2007 10 déc. 2007 à 22:30
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