Bonjour,
Proposition pour obtenir dans un TextBox le nom en majuscules et le prénom avec initiale(s) majuscule(s).
Conditions : un seul prénom, placé à la fin ; si composé, obligatoirement avec trait d'union (le dernier mot constitue le prénom, les autres le nom.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim np, p, i%
np = TextBox1.Value
If InStr(1, np, " ") > 0 Then
np = Split(np, " ")
For i = 0 To UBound(np) - 1
np(i) = StrConv(np(i), 1)
Next i
p = np(UBound(np))
If InStr(1, p, "-") > 0 Then
p = Split(p, "-")
For i = 0 To UBound(p)
p(i) = StrConv(p(i), 3)
Next i
p = Join(p, "-")
Else
p = StrConv(p, 3)
End If
np(UBound(np)) = p
np = Join(np, " ")
Else
np = StrConv(np, 1)
End If
TextBox1.Value = np
End Sub
Remarque : dans le cas où le prénom manque, le nom sera en majuscules s'il est composé d'un seul mot ; dans le cas où le nom comprendrait plusieurs mots, on peut forcer sa mise en majuscules en tapant 2 espaces à la suite (pour faire prendre en compte un prénom "vide" conduisant ce qui précède à être mis en majuscules).
Cordialement
Ferrand