Bonsoir,
un test en fusionnant les deux codes :
Sub LouReeD()
'Déclaration des types de variables
Dim Derligne As Long, I As Long, J As Integer, Tablo, Tablo2(), LigComp As Boolean
'Création de la variable qui donne la dernière ligne du tableau
Derligne = Range("D2").End(xlDown).Row
' les chiffres dans tablo repésente les numéros de colonnes a controler
Tablo = Array(13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 71, 73, 75, 76, 77, 78, 80, 82, 83, 88, 90, 91, 93, 94, 96, 101, 103, 107, 109, 111, 113, 114, 116, 117, 119, 120, 121, 122)
' création d'un deuxième tablo afin de mettre en mémoire l'état de la cellule testé : 0 = vide, 1 = non vide
ReDim Tablo2(0 To UBound(Tablo) - 1)
'I représente la cellule de départ de la boucle jusqu'a la derniere cellule de la derniere ligne du tableau
For I = 2 To Derligne
'Verifie Si dans la colonne numéro 8(H) la valeur et "A chaud" si non stop si oui on continue
If Cells(I, 8).Value = "A chaud" Then
' on part du principe que la ligne est complète
LigComp = True
' on boucle les cellules de la ligne en cours
For J = 0 To UBound(Tablo)
'Si la cellule est "vide" on le met en mémoire
If Cells(I, Tablo(J)).Value = "" Then
' cette cellule (j) de cette ligne (i) est vide
Tablo2(J) = 0
' cette ligne est incomplète
LigComp = False
Else
' sinon la cellule est pleine et on ne touche pas à LigComp
Tablo2(J) = 1
End If
Next J
' on met en couleur en fonction du résultat de la variable LigComp
' si la ligne est complète
If LigComp Then
' on boucle sur le tablo pour trouver les cellules pleines
For J = 0 To UBound(Tablo)
Cells(I, Tablo(J)).Interior.Color = RGB(0, 255, 128)
Next J
Cells(I, 1).Interior.Color = RGB(0, 255, 128)
Cells(I, 2).Interior.Color = RGB(0, 255, 128)
Cells(I, 123).Interior.Color = RGB(0, 255, 128)
Cells(I, 123) = "Complet"
' ce n'est pas complet
Else
' on boucle sur le tablo2
For J = 0 To UBound(Tablo2)
' si Tablo2 = 0 alors la cellule colonne Tablo passe en rouge
If Tablo2(J) = 0 Then Cells(I, Tablo(J)).Interior.Color = RGB(255, 198, 140)
Next J
Cells(I, 1).Interior.Color = RGB(255, 198, 140)
Cells(I, 2).Interior.Color = RGB(255, 198, 140)
Cells(I, 123).Interior.Color = RGB(255, 198, 140)
Cells(I, 123) = "Partiel"
End If
End If
Next I
End Sub
Une boucle sur les lignes.
On affirma que la ligne est complète.
Pour chaque ligne on boucle sur les cellules déterminées par Tablo.
Pour chaque cellule on teste si elle est vide.
Si oui alors on rempli un deuxième tableau afin de mettre son état en mémoire (0) ET on passe la ligne comme incomplète.
Sinon on met 1, et la ligne "reste" complète
Une fois ceci fait on teste la variable de complétude.
Si elle est complète, on reboucle sur les cellules pour les passer au vert et inscrire Complet.
Si elle n'est pas complète, on reboucle sur les cellules pour les passer au rouge si son état est à 0 et on inscrit Partiel.
@ bientôt
LouReeD