Colorier cellules vides sous conditions

Fermé
alp31 Messages postés 3 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 28 décembre 2018 - 28 déc. 2018 à 08:38
via55 Messages postés 14426 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 6 juin 2024 - 28 déc. 2018 à 17:24
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

via55 Messages postés 14426 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 6 juin 2024 2 711
28 déc. 2018 à 14:04
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
alp31 Messages postés 3 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 28 décembre 2018
28 déc. 2018 à 14:27
Bonjour, merci beaucoup cela fonctionne bien plus qu'a l'adapter !
0
alp31 Messages postés 3 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 28 décembre 2018
28 déc. 2018 à 14:29
Par contre je vais devoir l'applique à 31 groupe de 3 colonne ... Il n'y a pas de moyen pour boucler plus vite ?
0
via55 Messages postés 14426 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 6 juin 2024 2 711
28 déc. 2018 à 17:24
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