Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim test As Boolean 'déclare la variable test
Dim x As Byte 'déclare la variable x (incrément)
For Each cel In Range("A1:A" & Range("A65536").End(xlUp).Row) 'boucle 1 : sur toutes les cellules éditées cel de la colonne A
test = False 'initialise la variable test
If Len(cel.Value) > 5 Or Len(cel.Offset(0, 1).Value) > 5 Then 'condition 1 : si le nombre de caractères de la cellule en A ou en B est supérieur à 5
test = True 'définit la variable test
GoTo suite 'va la l'étiquette "suite"
End If 'fin de la condition 1
For x = 1 To Len(cel.Value) 'boucle 2 : sur tous les caractères de la cellule cel
'condition 2 : si le code ascii du caractère est compris entre 48 et 57 (inclus)
If Asc(Mid(cel.Value, x, 1)) > 47 And Asc(Mid(cel.Value, x, 1)) < 58 Then
test = False 'définit la variable test
Else 'sinon
test = True 'définit la variable
GoTo suite 'va à l'étiquette "suite"
End If 'fin de la condition 2
Next x 'prochain caractère de la boucle 2
'condition 3 : si le premier caractère de la cellule cel décalée en B est compris entre 48 et 57 (inclus)
If Asc(Mid(cel.Offset(0, 1).Value, 1, 1)) > 47 And Asc(Mid(cel.Offset(0, 1).Value, 1, 1)) < 58 Then
test = True 'définit la variable true
GoTo suite 'va la l'étiquette "suite"
End If 'fin de la condition 3
For x = 2 To Len(cel.Offset(0, 1).Value) 'boucle 3 : sur les 4 derniers caractères de la cellule cel décalée en B
'condition 4 : si le code ascii du caractère est compris entre 48 et 57 (inclus)
If Asc(Mid(cel.Offset(0, 1).Value, x, 1)) > 47 And Asc(Mid(cel.Offset(0, 1).Value, x, 1)) < 58 Then
test = False 'définit la variable test
Else 'sinon
test = True 'définit la variable test
GoTo suite 'va à l'étiquette "suite"
End If 'fin de la condition 4
Next x 'prochain caractère de la boucle 3
suite: 'étiquette
If test = True Then Range(cel, cel.Offset(0, 1)).Interior.ColorIndex = 3 'si la variable test est "Vrai", colore les cellules de la ligne concernée de rouge
Next cel 'prochaine cellule de la boucle1
End Sub