For Each rg In Range("A2:A" & Range("A65536").End(xlUp).Row)
' Test sur les colonnes NIC et CD selon critere predefini
If rg.Offset(0, 2).Value <> "" And Len(rg.Offset(0, 2)) = 7 Then ' cas Colonne CD OK
rg.Offset(0, 2).Interior.ColorIndex = xlNone
If rg.Offset(0, 1).Value <> "" And Len(rg.Offset(0, 1)) = 5 Then ' cas Colonne NIC OK
rg.Offset(0, 1).Interior.ColorIndex = xlNone
Else ' Si colonne NIC vide ou longueur non valide
rg.Offset(0, 1).Interior.ColorIndex = 3
End If
ElseIf rg.Offset(0, 2).Value <> "" And Len(rg.Offset(0, 2)) <> 7 Then ' Cas Colonne CD nonvide mais pas ok
rg.Offset(0, 2).Interior.ColorIndex = 3
If rg.Offset(0, 1).Value <> "" And Len(rg.Offset(0, 1)) = 5 Then ' cas Colonne NIC OK
rg.Offset(0, 1).Interior.ColorIndex = xlNone
Else ' Si colonne NIC vide ou longueur non valide
rg.Offset(0, 1).Interior.ColorIndex = 3
End If
ElseIf rg.Offset(0, 2).Value = "" Then ' cas Colonne CD vide
rg.Offset(0, 2).Interior.ColorIndex = xlNone
If rg.Offset(0, 1).Value <> "" And Len(rg.Offset(0, 1)) = 5 Then ' cas Colonne NIC OK
rg.Offset(0, 1).Interior.ColorIndex = xlNone
ElseIf rg.Offset(0, 1).Value <> "" And Len(rg.Offset(0, 1)) <> 5 Then ' Si colonne NIC longueur non valide
rg.Offset(0, 1).Interior.ColorIndex = 3
ElseIf rg.Offset(0, 1).Value = "" Then ' Si colonne NIC vide
rg.Offset(0, 1).Interior.ColorIndex = xlNone
End If
End If
'Test sur les dates pour abscence de chevauchement
For i = 1 To (Range("A65536").End(xlUp).Row - rg.Row) Step 1
'Test sur concordance des lignes
If rg.Value & rg.Offset(0, 1).Value & rg.Offset(0, 2).Value = rg.Offset(i, 0).Value & rg.Offset(i, 1).Value & rg.Offset(i, 2).Value Then
' Test sur les dates
If rg.Offset(i, 4) >= rg.Offset(0, 4) And rg.Offset(i, 4) <= rg.Offset(0, 6) Or rg.Offset(i, 5) >= rg.Offset(0, 4) And rg.Offset(i, 5) <= rg.Offset(0, 5) Then
rg.Offset(i, 0).Interior.ColorIndex = 39 ' met une couleur lavande
End If
End If
Next i