Bonjour à tous, spécialistes du VBA sur Excel,

Je suis nouveau sur le forum et complètement néophyte dans le domaine du VBA sur Excel.

Je lis en ce moment un bouquin pour apprendre à faire des indicateurs de performance dans Excel via le VBA.

Avec l'achat du livre, on nous offre quelques exemples d'indicateurs à faire en VBA.

Cela dit je n'arrive pas à le faire fonctionner. Peut-être réussirez vous à m'éclairer. Je serais ravi!!

Donc voici à quoi ressemble ma feuille excel:


Voici les codes VBA tels qu'ils sont données dans le fichier avec le livre, mais je ne sais pas comment faire fonctionner l'indicateur. J'ai mis la valeur "50" pour exemple de mesure.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
' Exemple d'appel de la fonction feu rouge
' L'ascenseur permet de faire varier la mesure à titre de démonstration
' de l'utilisation du Feu Rouge
Private Sub ScrollBar1_Change()
seuilbas = Range("H12").Value    'lit la valeur du seuil bas en H12
seuilhaut = Range("H13").Value   'lit la valeur du seuil haut en H13
Call Feurouge(seuilbas, seuilhaut, ScrollBar1.Value)
 
End Sub
 
'************************
'L indicateur Feurouge
'************************
'
'Feurouge nécessite 3 arguments : Les 2 seuils et la valeur à afficher
'Feurouge est programmé pour afficher en rouge les valeurs élevées
'Il suffit d'inverser les deux couleurs, si l'alerte est une valeur basse
'
Sub Feurouge(seuilbas, seuilhaut, mesure)
 
labelfeurouge.Caption = mesure
If mesure < seuilbas Then
        couleur = "vert"   'Remplacer par rouge si nécessaire
ElseIf mesure >= seuilbas And mesure < seuilhaut Then
        couleur = "jaune"
ElseIf mesure >= seuilhaut Then
        couleur = "rouge" ' Remplacer par vert si nécessaire
End If
Call affiche(couleur)
 
End Sub
 
Sub affiche(couleur)
If couleur = "rouge" Then
    Jaune1.BackColor = RGB(100, 100, 50)
    Vert1.BackColor = RGB(0, 80, 50)
    Rouge1.BackColor = RGB(255, 0, 50)
ElseIf couleur = "jaune" Then
    Vert1.BackColor = RGB(0, 100, 50)
    Rouge1.BackColor = RGB(100, 0, 50)
    Jaune1.BackColor = RGB(250, 250, 50)
ElseIf couleur = "vert" Then
    Jaune1.BackColor = RGB(100, 100, 50)
    Rouge1.BackColor = RGB(100, 0, 50)
    Vert1.BackColor = RGB(0, 255, 50)
End If
 
End Sub
Merci de votre aide