Sub validation(Chaine$)
Dim T, xX As Boolean, I&
Chaine = "47F45-5H44444"
T = Split(Chaine, "-")
xX = UBound(T) = 1 And T(0) Like "*#[A-z]#*" And Not T(0) Like "*[a-z][a-z]*" And T(1) Like "#[A-z]#*" And Not T(1) Like "*[a-z][a-z]*" And Val(T(0)) > 0
If xX Then
For I = Len(Chaine) To 1 Step -1 'on ne boucle que sur la fin économie faible mais en boucle sur xxxxx cellule ca peut faire la différence
If IsNumeric(Mid(Chaine, I, 1)) Then Mid(Chaine, I, 1) = " " Else Exit For
Next
End If
MsgBox xX & vbCrLf & "chaine " & Array("non valide ", "valide ")(Abs(xX)) & Trim(Chaine)
End Sub
'
Sub test()
validation ("47GF45-5H44444")
validation ("879F45-5H44444")
validation ("879F45-5HD44444")
Sub