Mise en forme des cellules

bonjour,

mon niveau en VBA est vraiment basique et même avec l'enregitrement automatique je ne trouve pas la solution.

dans mon fichier j'ai un résultat de tirage au sort et je souhaite appliquer cette mise en forme toutes les 2 lignes.

Sub Macro3()
Dim ligne As String
ligne = 10
Do While Cells(ligne, 1).Value <> ""
With Cells(ligne, 1)
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI($E$3=""i"";ET($A11>RECHERCHEV($A10;C$10:I$610;2);$A11<=RECHERCHEV($A10;C$10:I$610;3))=VRAI)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
     End With

  ligne = ligne + 2
  Loop
End Sub

ci joint le fichier avec quelque explication

merci pour votre aide par avance

philippe

Bonjour,

A tester

Sub Macro3()
Dim ligne As String
Dim MaPlage As Range
    Cells.FormatConditions.Delete
    ligne = 10
    Range("A10").Select
    Do While Cells(ligne, 1).Value <> ""
        If Not MaPlage Is Nothing Then
            Set MaPlage = Application.Union(MaPlage, Cells(ligne, 1))
        Else
            Set MaPlage = Cells(ligne, 1)
        End If
        ligne = ligne + 2
    Loop
    MaPlage.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=SI($E$3=""i"";ET($A11>RECHERCHEV($A10;C$10:I$610;2);$A11<=RECHERCHEV($A10;C$10:I$610;3))=VRAI)"
    MaPlage.FormatConditions(MaPlage.FormatConditions.Count).SetFirstPriority
    With MaPlage.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    MaPlage.FormatConditions(1).StopIfTrue = False
End Sub

A+

bonsoir Frangy

je vais essayer de comprendre comment le vba fonction car pour moi ça doit être ok

merci pour ton aide

Philippe

bonjour Frangy

je reviens sur la macro de mise en forme je souhaiterai appliquer ces 2 macros ensembles, séparément elles fonctionnent et si je les regroupe la dernière écrase la première et vue mon niveau en vba je ne trouve pas la solution.

merci de ton aide par avance

Sub test()
Dim ligne As String
Dim MaPlage As Range
   Cells.FormatConditions.Delete
  ligne = 10
   Range("A10").Select
   Do While Cells(ligne, 1).Value <> ""
      If Not MaPlage Is Nothing Then
         Set MaPlage = Application.Union(MaPlage, Cells(ligne, 1))
    Else
         Set MaPlage = Cells(ligne, 1)
  End If
   ligne = ligne + 2
    Loop
  MaPlage.FormatConditions.Add Type:=xlExpression, Formula1:= _
   "=SI($E$3=""d"";ET($A11>RECHERCHEV($A10;c$10:I$610;4);$A11<=RECHERCHEV($A10;c$10:I$610;5))=VRAI)"
   MaPlage.FormatConditions(MaPlage.FormatConditions.Count).SetFirstPriority
  With MaPlage.FormatConditions(1).Interior
      .PatternColorIndex = xlAutomatic
      .Color = 255
        .TintAndShade = 0
    End With
    MaPlage.FormatConditions(1).StopIfTrue = False

End Sub

et

Sub test2()
'controle adversaire tàt et doublette

Dim MaPlage1 As Range
    Cells.FormatConditions.Delete
    ligne = 10
    Range("q10").Select
    Do While Cells(ligne, 17).Value <> ""
        If Not MaPlage1 Is Nothing Then
            Set MaPlage1 = Application.Union(MaPlage1, Cells(ligne, 17))
        Else
            Set MaPlage1 = Cells(ligne, 17)
        End If
        ligne = ligne + 1
    Loop

    MaPlage1.FormatConditions.Add Type:=xlExpression, Formula1:= _
    "=SI($E$3=""d"";($q10=$o10)=vrai)"
    MaPlage1.FormatConditions(MaPlage1.FormatConditions.Count).SetFirstPriority
    With MaPlage1.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 255
        .TintAndShade = 0
    End With
    MaPlage1.FormatConditions(1).StopIfTrue = False
End Sub

Bonjour,

Chacune des deux procédures débute par

Cells.FormatConditions.Delete

Cette instruction supprime (Delete) les mises en forme conditionnelles (FormatConditions) de l'ensemble de la feuille (Cells).

Il faut donc cibler la plage concernée :

Columns(1).FormatConditions.Delete pour la procédure test

Columns(17).FormatConditions.Delete pour la procédure test2.

A+

bonsoir Frangy

merci pour ta réponse c'est ok pour moi

cordialement

philippe

bonsoir Frangy

j'ai essayé de reprendre ta macro pour un autre fichier mais je rame.

si joint le fichier et le code que je veux modifier

je veux tester toutes les cellules de la plage "c3:af68" de la feuille "tirages"

la condition est : SI(RECHERCHEV(A3;Equipes!b2:e150;4)=boulodrome,=VRAI) je voudrais que la cellule soit en gris clair

merci de ton aide par avance

philippe

Sub test()

Dim MaPlage As Range, ligne As Integer

   Cells.FormatConditions.Delete

  ligne = 3

   Cells(ligne, 3).Select
   Do While Cells(ligne, 3).Value <> ""
      If Not MaPlage Is Nothing Then
         Set MaPlage = Application.Union(MaPlage, Cells(ligne, 3))
    Else
         Set MaPlage = Cells(ligne, 3)
  End If
   ligne = ligne + 1
    Loop

  MaPlage.FormatConditions.Add Type:=xlExpression, Formula1:= _
   "=SI(RECHERCHEV(A3;at$3:au$100;2)=""boulodrome"",=VRAI)"

   MaPlage.FormatConditions(MaPlage.FormatConditions.Count).SetFirstPriority
  With MaPlage.FormatConditions(1).Interior
      .PatternColorIndex = xlAutomatic
      .Color = 255
        .TintAndShade = 0
    End With
    MaPlage.FormatConditions(1).StopIfTrue = False

End Sub
2tirage-test2.xlsm (66.40 Ko)
Rechercher des sujets similaires à "mise forme"