Tout d'abord rendre à César ce qui est à César :
Je suis parti du code de Nicholas 99 que vous pouvez trouver sur le lien suivant :
http://www.vbfrance.com/codes/COURBE-2D-SANS-MSCHART_35511.aspx
Il s'agit d'un code pour tracer un graphique. Il faut l'integrer dans une fenetre comme n'importe quel user control.
Le nombre de séries est volontairement limité à 10 pour des raisons de lisibilité du graphique, un message informe si l'on veut 'forcer' une serie de trop. Ce paramètre est géré par une simple variable, plus la liste des modèles de couleur à compléter.
Le nombre de 'moyenne mobile' est limité à 3 de la même façon que pour les séries (modifiable également de la même façon)
Il y a un ensemble de proprietes qui commencent par _
Il y a egalement 2 modeles de couleurs : XLLike et Base
Il n'y a pas de gestion d'erreurs a proprement parler, si vous avez des difficultés merci de me les signaler
Toute critique est bienvenue, positive ou negative. Merci d'avance
Source / Exemple :
Code partiel (exemple) :
Sub test()
Dim aa As New UcGraph
aa._RafraichiLive = False 'Eviter le cligonetement
aa.ClearMe()
aa.Top = 370
aa.Left = 50
aa.Height = 400
aa._TitreGraphique = "Essai de graphe"
aa._TitreAxeX = "Valeurs X"
aa._TitreAxeY = "Valeurs Y"
aa._PointVisible = True 'point sur la courbe
aa._LegendeVisible = True
Dim ab() As Double
Dim max As Integer = 900
Dim listeE(5) As String
For x As Integer = 0 To 5
listeE(x) = Str(2000 + x)
Next
aa.AddEtiquettesX(listeE)
For x As Integer = 0 To 8
ab = New Double() {CDbl(Int((max * Rnd()) + 1)), CDbl(Int((max * Rnd()) + 1)), _
CDbl(Int((max * Rnd()) + 1)), CDbl(Int((max * Rnd()) + 1))}
aa.AddCourbe(x, "Test" & " " & x & " " & x, True, False, False, False, ab)
Next
aa.AddCourbe(1, "Test Max", True, False, False, True, New Double() {15, 15, 18, 41, 45, 69, 35})
aa._RafraichiLive = True
Me.Controls.Add(aa)
End Sub
Conclusion :
Quelques détails :
'=======================
'Methodes
'=======================
'AddMoyenneMobile(ByVal NumCourbe As Integer, ByVal Periode As Integer)
'Ajouter une moyenne mobile (n° de courbe de reference, periode)
'RemoveMoyenneMobile(ByVal Numero As Integer)
'enlever une moyenne mobile (n° de la courbe de reference)
'ZapMoyennesMobiles()
'Effacer TOUTES les moyennes mobiles
'AddCourbe(ByVal Ordre As Integer, ByVal Titre As String, ByVal Courbe As Boolean, ByVal Barre As Boolean, ByVal Curseur As Boolean, ByVal Moyenne As Boolean, ByVal Valeurs() As Double)
'Ajouter une courbe
'DeleteCourbe(ByVal NumeroDeSerie As Integer)
'Supprimer une courbe
'ZapCourbes()
'Supprimer TOUTES les courbes
'AddEtiquettesX(ByVal Liste() As String)
'Ajouter les etiquettes de l'axe X
'ZapEtiquettes()
'Effacer les etiquettes de l'axe X
'ClearMe()
'Effacer tout en un seul coup
'====================
'Proprietes
'====================
'_AxeYBeginZero() As Boolean ' l'axe Y commence à zéro ou non
'_DeuxAxesY() As Boolean ' Les valeurs Y sont representées à droite
'_TitreAxeX() As String ' Titre de l'axe X
'_TitreAxeY() As String ' Titre de l'axe Y
'_FontAxeX() As Font
'_FontAxeY() As Font
'_CouleurAxe() As Color
'_CouleurTitreAxeX() As Color
'_CouleurTitreAxeY() As Color
'_CouleurEchelle() As Color
'_FontTitre() As Font
'_CouleurTitre() As Color
'_TitreGraphique() As String
'_TaillePointCourbe() As Integer
'_PointVisible() As Boolean
'_EpaisseurCourbe() As Integer
'_CouleurContourGraphe() As Color
'_ContourVisible() As Boolean
'_CouleurFondGraphe() As Color
'_CouleurZoneTracage() As Color
'_CouleurGrille() As Color
'_Moyenne(ByVal n As Integer) As Double
'_LegendeVisible() As Boolean
'_Ombre() As Boolean
'_ModeleDeCouleur() As Modele
'_RafraichiLive() As Boolean
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.