mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion franck
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
482
Réponses
1
Affichages
301
Réponses
4
Affichages
380
Réponses
3
Affichages
485
Réponses
4
Affichages
332
  • Question Question
Microsoft 365 modifier un code
Réponses
1
Affichages
426
Réponses
0
Affichages
436
Retour