Voici une manière très simple de faire des histogrammes...
Il suffit d'utiliser une form avec des labels, et de contrôler la hauteur de ces labels pour en faire un histogramme (on peut ainsi lui donner des couleurs,...). Du haut vers le bas, c'est très simple il suffit de faire une conversion entre la valeur à afficher, et la hauteur maxi du label. De bas en haut, il faut faire un petit calcul supplémentaire pour avoir les labels alignés en bas (voir mon exemple). On peut aussi faire de gauche à droite (facile).
Pour la propriété texte du label, on peut soit laisser vide, soit comme dans mon exemple, mettre un nom à la colonne (les mois par exemple), il faut alors trouver la bonne taille de caractères pour que cela s'ajuste bien.
Source / Exemple :
For i = 1 To 12
'on va pour chaque valeur de HR, calculer Y et la hauteur du label
THR = THR + HR(i) 'HR est un tableau contenant les valeurs à afficher
shA = CType(HR * 2.14, Short) 'j'adapte à la taille maxi de la colonne
If shA > 236 Then shA = 236 'on limite la taille de la colonne en fonction de la taille de la fenêtre
If shA = 0 Then shA = 2 'en cas de valeur nulle, on impose 2 pour avoir juste la trace de la base de la colonne
Select Case i
Case 0
lblH1.Top = 236 - shA
lblH1.Height = shA
If shA > 134 Then lblH1.BackColor = Color.LightGreen Else lblH1.BackColor = Color.LightSalmon
If HR > 0 Then lblR1.Text = CType(HR, String) Else lblR1.Text = ""
Case 1
lblH2.Top = 236 - shA
lblH2.Height = shA
If shA > 134 Then lblH2.BackColor = Color.LightGreen Else lblH2.BackColor = Color.LightSalmon
If HR > 0 Then lblR2.Text = CType(HR, String) Else lblR2.Text = ""
Case 2
lblH3.Top = 236 - shA
lblH3.Height = shA
If shA > 134 Then lblH3.BackColor = Color.LightGreen Else lblH3.BackColor = Color.LightSalmon
If HR > 0 Then lblR3.Text = CType(HR, String) Else lblR3.Text = ""
Case 3
lblH4.Top = 236 - shA
lblH4.Height = shA
If shA > 134 Then lblH4.BackColor = Color.LightGreen Else lblH4.BackColor = Color.LightSalmon
If HR > 0 Then lblR4.Text = CType(HR, String) Else lblR4.Text = ""
Case 4
lblH5.Top = 236 - shA
lblH5.Height = shA
If shA > 134 Then lblH5.BackColor = Color.LightGreen Else lblH5.BackColor = Color.LightSalmon
If HR > 0 Then lblR5.Text = CType(HR, String) Else lblR5.Text = ""
Case 5
lblH6.Top = 236 - shA
lblH6.Height = shA
If shA > 134 Then lblH6.BackColor = Color.LightGreen Else lblH6.BackColor = Color.LightSalmon
If HR > 0 Then lblR6.Text = CType(HR, String) Else lblR6.Text = ""
Case 6
lblH7.Top = 236 - shA
lblH7.Height = shA
If shA > 134 Then lblH7.BackColor = Color.LightGreen Else lblH7.BackColor = Color.LightSalmon
If HR > 0 Then lblR7.Text = CType(HR, String) Else lblR7.Text = ""
Case 7
lblH8.Top = 236 - shA
lblH8.Height = shA
If shA > 134 Then lblH8.BackColor = Color.LightGreen Else lblH8.BackColor = Color.LightSalmon
If HR > 0 Then lblr8.Text = CType(HR, String) Else lblr8.Text = ""
Case 8
lblH9.Top = 236 - shA
lblH9.Height = shA
If shA > 134 Then lblH9.BackColor = Color.LightGreen Else lblH9.BackColor = Color.LightSalmon
If HR > 0 Then lblR9.Text = CType(HR, String) Else lblR9.Text = ""
Case 9
lblH10.Top = 236 - shA
lblH10.Height = shA
If shA > 134 Then lblH10.BackColor = Color.LightGreen Else lblH10.BackColor = Color.LightSalmon
If HR > 0 Then lblR10.Text = CType(HR, String) Else lblR10.Text = ""
Case 10
lblH11.Top = 236 - shA
lblH11.Height = shA
If shA > 134 Then lblH11.BackColor = Color.LightGreen Else lblH11.BackColor = Color.LightSalmon
If HR > 0 Then lblR11.Text = CType(HR, String) Else lblR11.Text = ""
Case 11
lblH12.Top = 236 - shA
lblH12.Height = shA
If shA > 134 Then lblH12.BackColor = Color.LightGreen Else lblH12.BackColor = Color.LightSalmon
If HR > 0 Then lblR12.Text = CType(HR, String) Else lblR12.Text = ""
End Select
Next i
lblTotalHR.Text = Format(THR, "###0.00")
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.