Mise en forme conditionnelle en VBA

Je souhaite faire une mise en forme d'une cellule en fonction de plusieurs conditions en vba et je n'y arrive pas.

Dans le petit exemple joint, je veux que si cellule (i, "A") = 100 ou si cellule (i, "A") = 350 alors cellule (i, "B") sans mise en forme quelque soit la valeur de cellule (i, "B").

Par ailleurs, je souhaite que si cellule (i, "A") <> 100 ou cellule (i, "A") <> 350 et cellule (i, "B") = 0 alors cellule (i, "B") est de couleur jaune par exemple.

Et ce que pour toutes les lignes de mon tableau (sauf celle où cellule (i, "A") est vide.

Merci

13exemple-mefc.xlsx (8.58 Ko)

Bonjour,

Pourquoi faire ca via VBA ?

Vos conditions sont incomplètes et l'exemple donné ne correspond pas. En effet le coupe (400, 10) n'entre dans aucune catégorie donc on ne devrait en théorie pas le traiter et donc le laisser "vide".

Vous avez précisé 2 cas, mais pas indiqué ce que vous vouliez faire des cellules ne respectant aucun critère. Dans l'absense d'info la macro proposée ci-après ne fait rien pour ces cellules.

Sub InoTA()
  Dim myVals
  With ActiveSheet.Range("A2:B2")
    myVals = Range(.Cells, .End(xlDown)).Value2
  End With

  Dim rngYellow As Range
  Dim rngNothing As Range
  Dim i As Long

  For i = LBound(myVals, 1) To UBound(myVals, 1)
    If myVals(i, 1) = 100 Or myVals(i, 1) = 350 Then
      ' pas de couleur
      If rngNothing Is Nothing Then
        Set rngNothing = ActiveSheet.Cells(i + 1, 2)
      Else
        Set rngNothing = Application.Union(rngNothing, ActiveSheet.Cells(i + 1, 2))
      End If
    ElseIf myVals(i, 2) = 0 Then
      ' couleur jaune
      If rngYellow Is Nothing Then
        Set rngYellow = ActiveSheet.Cells(i + 1, 2)
      Else
        Set rngYellow = Application.Union(rngYellow, ActiveSheet.Cells(i + 1, 2))
      End If
    End If
  Next i

  ' coloration des cellules
  rngYellow.Interior.Color = 65535
  rngNothing.Interior.Color = 16777215
End Sub

Bonjour

Pourquoi du VBA une simple MFC fait le job

Crdlt

Merci Joco7915, mais je n'arrive pas à combiner les conditions dans une formule...

Un exemple en simple MFC

regarde les formule de la MFC

Je salue Saboh12617 qui répond par un paramétrage d'une MFC en VBA comme le titre du post le suggère. Merci Joco7915 pour ta contribution non analysé. J'attends les précisions dont celle du demandeur InoTA.

mfc

Bien,

je vais préciser ma demande car je n'arrive pas à transposer vos propositions dans mon véritable fichier.

Je joins un fichier en pahse avec mon besoin réel..

Dans cet exemple, je souhaiterais la mise forme des cellules (i, "J") de la manière suivante :

si (i, "F") est vide ou si (i, "F") =100, 350, 458, 800 alors pas de mise en forme de (i, "J")

si (i, "F") a n'importe quelle autre valeur et que (i, "J") = vide ou 0 alors (i, "J") en jaune.

Merci de votre aide

11mefc.xlsx (69.73 Ko)
Rechercher des sujets similaires à "mise forme conditionnelle vba"