Salut,
Si on considère que tous les caractères qui ne sont pas des minuscules, majuscules ou chiffres sont des caractères spéciaux à mon sens ça donne :
Function TestCell2(cellule As Range) As String
Dim nb As Integer, i As Integer, minus As Integer, majus As Integer, numé As Integer
Application.Volatile
nb = Len(cellule)
For i = 1 To nb
Select Case Asc(Mid(cellule, i, 1))
Case 123 To 255: spéc = 1
Case 97 To 122: minus = 1
Case 91 To 96: spéc = 1
Case 65 To 90: majus = 1
Case 58 To 64: spéc = 1
Case 48 To 57: numé = 1
Case 0 To 47: spéc = 1
End Select
Next i
Debug.Print spéc
If nb >= 8 And minus = 1 And majus = 1 And numé = 1 And spéc = 1 Then TestCell2 = "OK" Else TestCell2 = "Err"
End Function