nichboul
Nouveau membre
Bonjour,
Je dois réaliser une jauge verticale pour un tableau de bord.
J'ai le code vba de l'ouvrage d'Alain Fernandez (l'essentiel du tableau de bord) mais je voudrais le modifier mais je n'y arrive pas.
Ce que je voudrais :
- avoir une cellule valeur qui permet de mettre à jour la jauge à la place d'un scrollbar
- mettre la jauge dans la feuil2 par exemple et les données dans la feuil1
Merci par avance
[cpp]Private Sub ScrollBar1_Change()
seuilbas = Range("J6").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("J7").Value 'lit la valeur du seuil haut en H13
objectif = Range("J8").Value 'lit la valeur de l'objectif
Call jaugeV(seuilbas, seuilhaut, ScrollBar1.Value, objectif)
End Sub
'****************************
' jauge vertical avec seuils
' 4 arguments d'entrée : les seuils, la mesure et l'objectif
'****************************
' La couleur rouge "danger" est définie en deça du seuil bas.
' Pour la positionner au dessus du seuil haut inverser avec la couleur verte
Sub jaugeV(seuilbas, seuilhaut, mesure, objectif)
Max = 100 ' Affichage en %
If seuilhaut > Max Then seuilhaut = Max 'prévient les erreurs
If seuilbas > Max Then seuilbas = Max ' ""
If mesure > Max Then mesure = Max ' ""
mercure1.Height = (Tube1.Height / Max * mesure) ' Calcul la hauteur de mercure
mercure1.Top = Tube1.Top + Tube1.Height - mercure1.Height - 1
limite1.Height = (Tube1.Height / Max * objectif) ' Calcul la hauteur de l'indicateur d'objectif
limite1.Top = Tube1.Top + Tube1.Height - limite1.Height - 1
If mesure < seuilbas Then mercure1.BackColor = RGB(255, 0, 0) 'affiche en rouge (passer en vert le cas échéant)
If mesure >= seuilbas And mesure < seuilhaut Then mercure1.BackColor = RGB(250, 250, 0) 'affiche en jaune
If mesure >= seuilhaut Then mercure1.BackColor = RGB(0, 255, 0) 'affiche en vert (passer en rouge le cas échéant)
mesure1.Caption = mesure 'affiche la valeur de la mesure
If mesure >= objectif Then
mesure1.Font.Bold = True 'l'objectif est atteint, affiche la valeur en gras
mesure1.Font.Size = 12
Else
mesure1.Font.Bold = False
mesure1.Font.Size = 10
End If
objectif1.Caption = objectif
End Sub
[/cpp]
Je dois réaliser une jauge verticale pour un tableau de bord.
J'ai le code vba de l'ouvrage d'Alain Fernandez (l'essentiel du tableau de bord) mais je voudrais le modifier mais je n'y arrive pas.
Ce que je voudrais :
- avoir une cellule valeur qui permet de mettre à jour la jauge à la place d'un scrollbar
- mettre la jauge dans la feuil2 par exemple et les données dans la feuil1
Merci par avance
[cpp]Private Sub ScrollBar1_Change()
seuilbas = Range("J6").Value 'lit la valeur du seuil bas en H12
seuilhaut = Range("J7").Value 'lit la valeur du seuil haut en H13
objectif = Range("J8").Value 'lit la valeur de l'objectif
Call jaugeV(seuilbas, seuilhaut, ScrollBar1.Value, objectif)
End Sub
'****************************
' jauge vertical avec seuils
' 4 arguments d'entrée : les seuils, la mesure et l'objectif
'****************************
' La couleur rouge "danger" est définie en deça du seuil bas.
' Pour la positionner au dessus du seuil haut inverser avec la couleur verte
Sub jaugeV(seuilbas, seuilhaut, mesure, objectif)
Max = 100 ' Affichage en %
If seuilhaut > Max Then seuilhaut = Max 'prévient les erreurs
If seuilbas > Max Then seuilbas = Max ' ""
If mesure > Max Then mesure = Max ' ""
mercure1.Height = (Tube1.Height / Max * mesure) ' Calcul la hauteur de mercure
mercure1.Top = Tube1.Top + Tube1.Height - mercure1.Height - 1
limite1.Height = (Tube1.Height / Max * objectif) ' Calcul la hauteur de l'indicateur d'objectif
limite1.Top = Tube1.Top + Tube1.Height - limite1.Height - 1
If mesure < seuilbas Then mercure1.BackColor = RGB(255, 0, 0) 'affiche en rouge (passer en vert le cas échéant)
If mesure >= seuilbas And mesure < seuilhaut Then mercure1.BackColor = RGB(250, 250, 0) 'affiche en jaune
If mesure >= seuilhaut Then mercure1.BackColor = RGB(0, 255, 0) 'affiche en vert (passer en rouge le cas échéant)
mesure1.Caption = mesure 'affiche la valeur de la mesure
If mesure >= objectif Then
mesure1.Font.Bold = True 'l'objectif est atteint, affiche la valeur en gras
mesure1.Font.Size = 12
Else
mesure1.Font.Bold = False
mesure1.Font.Size = 10
End If
objectif1.Caption = objectif
End Sub
[/cpp]