mise en forme conditionnelle

F

franck

Guest
salut,

Voilà, je voudrais que le code suivant qui fonctionne pour ma colonne F, puisse fonctionner pour G, H, et I, comment introduire le changement de colonne dans ce code. (de façon à se q les donnéees de la colonne F, soit comparé aux valeur Max, Min et std de la colonne F, et que les données de la colonne G, soit comparé aux Maxi, Mini, et std de ma colonne G, et ainsi de suite...)


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Range("F21:K200"), Target) Is Nothing Then Exit Sub
If IsEmpty(Target.Value) Then
Target.Interior.ColorIndex = xlColorIndexAutomatic
Target.Font.ColorIndex = xlColorIndexAutomatic
Exit Sub
End If
Maxi = Range("F13").Value
Std = Range("F14").Value
Mini = Range("F15").Value
Select Case Target.Value
Case "PF", "", "pf", "Pf"
Target.Interior.ColorIndex = xlColorIndexAutomatic
Target.Font.ColorIndex = 0
Case Is = Mini, Is = Maxi
Target.Interior.ColorIndex = 6
Target.Font.ColorIndex = 0
Case Is < Mini, Is > Maxi
Target.Interior.ColorIndex = 3
Target.Font.ColorIndex = 0
Case Else
Target.Interior.ColorIndex = 4
Target.Font.ColorIndex = 0
End Select
End Sub


merci de votre aide
 
C

chris

Guest
Pour faire plsuieurs colonnes d'un coup :
Inclure le code dans une boucle for x qui s'incrémente de 1
utiliser la notation R1C1 et non A1
ainsi les références à la colonne prennent en compte la valeur de x et se décalent donc d'une colonne avec une notation du style
Range("R15C" & x ).Value au lieu de Range("F15").Value

Pour une colonne à la fois utiliser x et la noation mais initialiser x à la colonne en cours par exemple (selon la cellule active).

Chris
 
L

LeChat

Guest
Il suffit juste de modifier le code ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Intersect(Range("F21:K200"), Target) Is Nothing Then Exit Sub
If IsEmpty(Target.Value) Then
Target.Interior.ColorIndex = xlColorIndexAutomatic
Target.Font.ColorIndex = xlColorIndexAutomatic
Exit Sub
End If
Maxi = Cells(13, Target.Column).Value
Std = Cells(14, Target.Column).Value
Mini = Cells(15, Target.Column).Value
Select Case Target.Value
Case "PF", "", "pf", "Pf"
Target.Interior.ColorIndex = xlColorIndexAutomatic
Target.Font.ColorIndex = 0
Case Is = Mini, Is = Maxi
Target.Interior.ColorIndex = 6
Target.Font.ColorIndex = 0
Case Is < Mini, Is > Maxi
Target.Interior.ColorIndex = 3
Target.Font.ColorIndex = 0
Case Else
Target.Interior.ColorIndex = 4
Target.Font.ColorIndex = 0
End Select
End Sub

LeChat
 

Discussions similaires

Réponses
1
Affichages
296

Statistiques des forums

Discussions
313 071
Messages
2 095 028
Membres
106 160
dernier inscrit
bingmp