Bonjour,

J'ai un souci avec des codes qui permettent de modifier la couleur de la police et le surlignage de la ligne si il y a un changement de valeurs.
Je m'explique : La macro permet de générer des lignes en fonction d'une valeur (exemple 6 --> 6 lignes générées quasi identique à la ligne mère)
La ligne mère est initialement en noir et les lignes générées en rouge.
Les valeurs qui sont modifiées sur la ligne mère sont colonne M ("blocage" devient "deblocage") et colonne P (valeur de cellule >0 devient =0 et cette valeur est liée à la colonne M car quand celulle de la ligne mère de la colonne P =0, cellule de la ligne mère colonne M devient "deblocage")
Les lignes générées sont en rouge et je veux qu'elles deviennent noires une fois que la cellule de la ligne mère colonne P = 0 et que celule de la ligne mère colonen M passe de "Blocage" à "deblocage". Quand à la ligne mère, je voudrais qu'elle soit surligné une fois que colonne P = 0 et colonne M deblocage...

J'avais déjà tenter

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
If cells(derlig , 13).value = "DEBLOCAGE" then
     range(cells(derlig , 1), cells(derlig , 16)).font.underline = X 
'(je ne sais pas quoi mettre donc j'ai essayé quelques chiffres)
End if
et de même pour les lignes générées en rouge mais sa ne fonctionne pas.

le code complet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Sub repet()
On Error GoTo gestion
derlig = [E8].End(xlDown).Row
'oubli de remplir la case date
If Cells(derlig, 1).Value = "" Then
    MsgBox "Entrez la date de fabrication"
    Cells(derlig, 1).Select
    End
End If
'oubli de remplir la case heure
If Cells(derlig, 3).Value = "" Then
    MsgBox "Veuillez indiquer l'heure"
    Cells(derlig, 3).Select
    End
End If
'oubli de remplir la case ligne
If Cells(derlig, 4).Value = "" Then
    MsgBox "veuillez indiquer la ligne de production"
    Cells(derlig, 4).Select
    End
End If
'oubli de remplir la case code
If Cells(derlig, 5).Value = "" Then
    MsgBox "Veuillez indiquer le code article"
    Cells(derlig, 5).Select
    End
End If
'oubli de remplir la case nombre de palettes
If Cells(derlig, 9).Value = "" Then
    MsgBox "Veuillez entrer le nombre de palettes"
    Cells(derlig, 9).Select
    End
End If
'eviter de remplir la case nombre de déchets sur la ligne globale
If Cells(derlig, 10).Value <> "" Then
    MsgBox "Veuillez ne pas remplir le nombre de déchets sur cette ligne global, ne remplir que le nombre de déchets par palette"
    Cells(derlig, 10).Select
    End
End If
'oubli de remplir la case temps de triage par palette
If Cells(derlig, 15).Value = "" Then
    MsgBox "Veuillez indiquer le temps de triage par palette"
    Cells(derlig, 15).Select
    End
End If
'si la ligne selectionnée a une police decoloration standard noire, elle est considérée comme la ligne mère
'la ligne mère génère autant de lignes que de nombre de palettes
'le temps de triage total et restant est calculé en fonction du temps de triage par palette et le nombre de palettes
'le temps de triage restant est calculé automatiquement en fonction des palettes débloquées
'si toutes les palettes sont débloquées, alors la ligne mère devient debloquée aussi
If Cells(derlig, 1).Font.ColorIndex = xlAutomatic Then
    Application.EnableEvents = False
    derlig2 = Cells(derlig, 9).Value
    Range(Cells(derlig, 1), Cells(derlig, 15)).AutoFill Destination:=Range(Cells(derlig, 1), Cells(derlig + derlig2, 15)), Type:=xlFillCopy
    nb = Cells(derlig, 8).Value / derlig2
    Range(Cells(derlig + 1, 8), Cells(derlig + derlig2, 8)).Value = nb
    Range(Cells(derlig + 1, 9), Cells(derlig + derlig2, 9)).Value = 1
    Cells(derlig, 13).FormulaR1C1 = "=IF(RC[3]=0,""DEBLOCAGE"",""BLOCAGE"")"
    Range(Cells(derlig + 1, 13), Cells(derlig + derlig2, 13)).Value = "BLOCAGE"
    Range(Cells(derlig + 1, 12), Cells(derlig + derlig2, 12)).ClearContents
    Range(Cells(derlig + 1, 1), Cells(derlig + derlig2, 15)).Font.ColorIndex = 3
    Cells(derlig, 16).FormulaR1C1 = "=SUMPRODUCT((palette=""BLOCAGE"")*RC[-1])"
    Cells(derlig, 12) = "=I" & derlig & "*O" & derlig
End If
gestion:
Application.EnableEvents = True
End Sub
Je suis débutant en VBA (1semaine de pratique youhou!) c'est pourquoi je ne maîtrise pas encore les subtilités qui permettent de ne plus galérer ^^

Merci de votre aide!

Yoann