Colorier cellules vides sous conditions

Bonjour,

J'aimerai savoir comment faire pour colorier toutes les cellules vides sur trois colonne mais uniquement celles qui sont sous un "1" et ou il n'y a pas d'autre "1" sur la même ligne. Je vous joins un fichier pour mieux comprendre et merci pour votre aide !

https://www.cjoint.com/c/HLChMK8CmRg

4 réponses

  1. Remplace 13 dans la macro par la 1ere colonne de la plage à traiter et 19 par la première colonne du dernier groupe de 3
    Sub couleur()
    
    For t = 13 To 19 Step 3
    For g = 0 To 2
    a = 2
    For n = 2 To 26
    If Cells(n - 1, t + g) = 1 Then a = 1
    If Application.WorksheetFunction.Count(Range(Cells(n, t), Cells(n, t + 2))) = 1 Then a = 2
     Cells(n, t + g).Select
    If a = 1 Then Selection.Interior.Color = 65535 Else Selection.Interior.Pattern = xlNone
    Next
    Next
    Next
    End Sub

    0
    1. Par contre je vais devoir l'applique à 31 groupe de 3 colonne ... Il n'y a pas de moyen pour boucler plus vite ?
      0
      1. Bonjour, merci beaucoup cela fonctionne bien plus qu'a l'adapter !
        0
        1. Bonjour

          Difficile par MFC, en tout cas je n'ai pas trouvé
          Possible par macro
          Copier la macro ci-dessous et la coller dans un module de l'éditeur VBA(ALT+F11 pour ouvrir éditeur - Insertion - Module) puis la lancer depuis l'onglet Développeur - Macros du ruban
          Sub couleur()
          
          For t = 13 To 15
          a = 2
          For n = 2 To 26
          If Cells(n - 1, t) = 1 Then a = 1
          If Application.WorksheetFunction.Count(Range("M" & n & ":" & "O" & n)) = 1 Then a = 2
           Cells(n, t).Select
          If a = 1 Then Selection.Interior.Color = 65535 Else Selection.Interior.Pattern = xlNone
          Next
          Next
          
          For t = 16 To 18
          a = 2
          For n = 2 To 26
          If Cells(n - 1, t) = 1 Then a = 1
          If Application.WorksheetFunction.Count(Range("P" & n & ":" & "R" & n)) = 1 Then a = 2
           Cells(n, t).Select
          If a = 1 Then Selection.Interior.Color = 65535 Else Selection.Interior.Pattern = xlNone
          Next
          Next
          
          For t = 19 To 21
          a = 2
          For n = 2 To 26
          If Cells(n - 1, t) = 1 Then a = 1
          If Application.WorksheetFunction.Count(Range("S" & n & ":" & "U" & n)) = 1 Then a = 2
           Cells(n, t).Select
          If a = 1 Then Selection.Interior.Color = 65535 Else Selection.Interior.Pattern = xlNone
          Next
          Next
          End Sub

          Cdlmnt
          Via
          1