Changement de couleur de cellule avec un if

Louis -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

Je voudrais que mes cases se colorient avec un if

je voudrais que si la valeur des objectifs réalisés est supérieur à l'objectif du mois la cellule soit verte, si l'objectif réalisé est entre celui du mois et celui du mois précédent que la cellule soit orange et enfin que si il est inférieur a celui du mois précédent qu'il se colorie en rouge.

J'ai donc réaliser le code suivant mais lorsque je l'execute toute les cellules se colorient en vert :

'Déclaration des variables
Dim i As Integer
Dim objectif As Double
Dim realise As Double
Dim objectif_mensuel As Double
Dim objectif_du_mois As Double
Dim objectif_mois_precedent As Double
Dim mois As Integer

'Récupération du mois au moment du clic
mois = Month(Date)

'création de la boucle pour les causeries
For i = 5 To 34

'Récupération des valeurs dans les cellules
objectif = Cells(i, 3).Value
realise = Cells(i, 4).Value

If objectif = 0 Then
'On ne fait rien pour éviter la division par 0
'On lui donne la valeur 0 pour faire jolie
Cells(i, 18).Value = 0
Cells(i, 19).Value = 0
Cells(i, 5).Interior.ColorIndex = 15
Else
'Calcul des valeurs
objectif_mensuel = objectif / 12
objectif_du_mois = objectif_mensuel * mois
objectif_mois_precedent = objectif_mensuel * (mois - 1)

'Affichage des résultats
Cells(i, 17).Value = objectif_mensuel
Cells(i, 18).Value = objectif_du_mois
Cells(i, 19).Value = objectif_mois_precedent

'Changement de la couleur de la case en fonction de l'objectif
If realise >= obectif_du_mois Then
Cells(i, 5).Interior.ColorIndex = 43

ElseIf objectif_du_mois > realise > objectif_mois_precedent Then
Cells(i, 5).Interior.ColorIndex = 44
Else
Cells(i, 5).Interior.ColorIndex = 3

End If

End If


Next

Je vous remercie par avance de votre aide.
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
peux-tu utiliser les balises de code quand tu partages du code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Je pense que la ligne suivante ne fait pas ce que tu imagines
ElseIf objectif_du_mois > realise > objectif_mois_precedent Then

Il est préférable d'écrire:
ElseIf objectif_du_mois > realise  and  realise  > objectif_mois_precedent Then
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
ou même, étant donné que la première condition est certaine, vu le test précédent:
ElseIf  realise  > objectif_mois_precedent Then
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
as-tu bien
option explicit
en première ligne du module? sinon, ajoute-le.
0