'---------------------------------------------------------------------------------------
' Module : Feuil1
' Auteur : Luki sur xld pour pjp666
' Date : 05/12/2007
' Description : Procédure événementielle pour changer la couleur de remplissage de
' la cellule en fonction de sa valeur.
' L'événement déclencheur est 'Change' dans la feuille
'---------------------------------------------------------------------------------------
Option Explicit
'-------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range) 'target est la cellule qui appelle la macro événementielle
Dim WorkRange As Range
'Définit la plage sur laquelle travailler
Set WorkRange = Range("A1:A20")
'Si l'intersection de la cible(target) et de la plage de travail ne renvoie aucune
'cellule, sortie macro.
If Intersect(Target, WorkRange) Is Nothing Then Exit Sub
'Si la cible contient plusieurs cellules, sortie macro pour éviter les bugs
If Intersect(Target, WorkRange).Cells.Count > 1 Then Exit Sub
'>>> Choix d'une macro à appeler en fonction de la valeur de cellule <<<
'Si target est vide, appelle macro04 et sortie
If IsEmpty(Target) Then Call macro04(Target): Exit Sub
'Sinon:
'Appelle une macro en fonction de la valeur en lui passant 'target' comme argument.
Select Case Target.Value
Case Is < 10
Call macro01(Target)
Case Is = 10
Call macro02(Target)
Case Is > 10
Call macro03(Target)
End Select
End Sub
'-----------------------------------------------------------------
Sub macro01(cible As Range) 'affecte une couleur de remplissage
cible.Interior.ColorIndex = 5
End Sub
Sub macro02(cible As Range) 'affecte une couleur de remplissage
cible.Interior.ColorIndex = 10
End Sub
Sub macro03(cible As Range) 'affecte une couleur de remplissage
cible.Interior.ColorIndex = 15
End Sub
Sub macro04(cible As Range) ' supprime la couleur de remplissage
cible.Interior.ColorIndex = xlNone
End Sub