Macro mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion Lucius
  • 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 !

Lucius

XLDnaute Nouveau
Bonjour à tous,

Je cherchais à créer une macro permettant une mise en forme conditionnelle (mais avec plusieurs contraintes et plus de 3 possibilités).

Dans le fichier joint, l'idée serait que la cellule du forecast soit de couleur:
_ 4 si inférieure ou égale au budget S1 ("C"<"B")
_ 36 si supérieure au budget S1 et que celui-ci est égal à 0 ("C" > "B" + "B" = "0")
_ 33 si supérieure au budget S1 mais inférieur aux CAR VAL ("C" > "B" + "C" < "A")
_ 40 si supérieure au budget S1 mais inférieure aux budgets S1 + S2 ("C">"B" + "C" < ("B" + "D"))
_ 39 dans le reste des cas...

Si quelqu'un peut m'aider à ce sujet, je lui en serais très reconnaissant.

Merci beaucoup d'avance et bon après-midi.


Cordialement,
 

Pièces jointes

Re : Macro mise en forme conditionnelle

Bonjour Lucius, le forum

voici ma contribution:
Code:
Sub Couleur()
    Dim sht As Worksheet
    Dim i As Integer, ll As Integer
    Dim A As Integer, B As Integer, C As Integer, D As Integer
    
    Set sht = ActiveSheet
    ll = sht.Cells(2000, 3).End(xlUp).Row
    i = 2
        
    Do While i < ll
        i = i + 1
        A = sht.Cells(i, 1)
        B = sht.Cells(i, 2)
        C = sht.Cells(i, 3)
        D = sht.Cells(i, 4)
        
        If C < B Then
            sht.Cells(i, 3).Interior.ColorIndex = 4
            ElseIf (C > B And B = 0) Then
            sht.Cells(i, 3).Interior.ColorIndex = 36
            ElseIf (C > B And B <> 0 And C < A) Then
            sht.Cells(i, 3).Interior.ColorIndex = 33
            ElseIf (C > B And B <> 0 And C < (B + D)) Then
            sht.Cells(i, 3).Interior.ColorIndex = 40
            ElseIf (C > B And B <> 0 And C > A And C > (B + D)) Then
            sht.Cells(i, 3).Interior.ColorIndex = 39
        End If
Loop
End Sub


Cordialement,

Lele79
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
6
Affichages
159
Réponses
2
Affichages
103
Réponses
25
Affichages
606
Retour