Salut Syl, Evelyne et François, et le Forum
Huum si tu n'as que des Prénoms non-composés la solution la plus simple que j'ai trouvée est ceci :
Private Sub TextBox1_Change()
Dim Initiale As String, Reste As String
If Len(TextBox1) > 1 Then
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
End If
End Sub
Maintenant pour les Prénoms composés il faut le faire avec Split qui lui n'est pas gèré en dessous d'Excel 2000 (Donc Sorry pour les Exceliens/iennes Nonante Septième !!)
Option Explicit
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim LePrenom As Variant
Dim Initiale As String, Initiale1 As String, Initiale2 As String
Dim Reste As String, Reste1 As String, Reste2 As String
Dim Z As String
Z = " "
TextBox1 = LCase(TextBox1)
LePrenom = Split(TextBox1, Chr(32))
If UBound(LePrenom) = 0 Then LePrenom = Split(TextBox1, Chr(45)): Z = "-"
If UBound(LePrenom) = 0 Then LePrenom = Split(TextBox1, Chr(46)): Z = "."
Select Case UBound(LePrenom)
Case 0
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
Case 1
Initiale1 = UCase(Left(LePrenom(0), 1))
Reste1 = LCase(Right(LePrenom(0), Len(LePrenom(0)) - 1))
Initiale2 = UCase(Left(LePrenom(1), 1))
Reste2 = LCase(Right(LePrenom(1), Len(LePrenom(1)) - 1))
TextBox1 = Initiale1 & Reste1 & Z & Initiale2 & Reste2
End Select
End Sub
Il y a peut-être plus simple à faire, mais celà tourne... Ici on considère le séparateur de prénom comme étant l'espace.... Si tu utilises autre chose qu'un espace, un trait d'union ou un point comme séparateur de prénoms composés il faut rajouter ce caractère...
Bon Appétit à tous et toutes
Parfois y des truc qui semble tout simple et qui sont un casse tête à gérer !!!
@+Thierry