Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mise en Forme Conditionnelle - VBA Excel - Couleur selon résultat cellule

gregcompta

XLDnaute Nouveau
Bonjour chers experts d'excel,

Je suis tout novice en programmation, avec trèsssss peu de base vba. mais j'aime la programmation

Pourriez vous m'indiquer svp comment définir la couleur d'une cellule, en passant par du vba, selon le résultat qui se trouve à l'intérieur d'elle même (mais pas que..) :
- si la cellule X = 0, alors en Vert;
- si la cellule X = 0 ET que la cellule Y = "x", alors en Blanc;
- si la cellule X < au montant total ttc, alors orange;
- si la cellule X = montant total ttc, alors en rouge.

Et s'il est possible que cela se fasse sans avoir besoin de cliquer sur quelconque bouton ???

UN GRAND MERCIIII
 

Pièces jointes

  • mise en forme conditionnelle vba.jpg
    55.1 KB · Affichages: 109
  • test.xlsx
    21 KB · Affichages: 63
  • test.xlsx
    21 KB · Affichages: 62

Iznogood1

XLDnaute Impliqué
Re : Mise en Forme Conditionnelle - VBA Excel - Couleur selon résultat cellule

Bonjour,

Peux-tu préciser :
C'est quoi "X" (je suppose que c'est la cellule considérée) ?
C'est quoi "Y" (serait-ce le "total encaissé") ?
Pourquoi préférés-tu une solution VBA à une mise ne forme conditionnelle ?
Ta demande reflète-t-elle l'ordre d'évaluation des conditions (si X = 0 et X < au montant total TTC --> Vert et non orange)

Pour du VBA, un code du style :
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, [A1:A50]) Is Nothing Then Exit Sub
  If Target.Value = 0 Then
    Target.Interior.Color = RGB(0, 255, 0)
  ElseIf Target.Value And Target.Offset(0, 1) = Target.Value Then
    Target.Interior.Color = RGB(255, 153, 0)
  'ElseIf ... Then ...
  End If
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Mise en Forme Conditionnelle - VBA Excel - Couleur selon résultat cellule

Bonjour.

Et pour metttre des MeFC en VBA au plus court :
VB:
Sub Macro1()
Dim Plg As Range
Set Plg = Range("I4:I7")
Plg.FormatConditions.Delete
Plg.FormatConditions.Add(Type:=xlExpression, Formula1:="=ET($I4=0;$J4="""")").Interior.Color = &HFF00&
Plg.FormatConditions.Add(Type:=xlExpression, Formula1:="=$I4=0").Interior.Color = &HFFFFFF
Plg.FormatConditions.Add(Type:=xlExpression, Formula1:="=$I4<$G4").Interior.Color = &HC0FF&
Plg.FormatConditions.Add(Type:=xlExpression, Formula1:="=VRAI").Interior.Color = &HFF&
End Sub
 

Discussions similaires

Réponses
4
Affichages
236
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…