Bonjour,
tout le problème de ta demande est de pouvoir identifier quels caractères font partie du nom et quels caractères font partie du prénom.
Il n'existe pas à ma connaissance d'algorithme sans faille qui fasse cette opération. A moins d'avoir une information qui permette cette distinction.
On pourrait imaginer, qu'à la saisie tu introduises une virgule pour séparer nom et prénom et appliquer une macro événementielle pour formater le nom et le prénom comme souhaité.
voici à quoi pourrait ressembler cette macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
s1 = InStr(Target, ",")
If s1 = 0 Then Exit Sub
nom = UCase(Left(Target, s1 - 1))
prénom = Application.WorksheetFunction.Proper(mid(target,s1+1))
nom = nom & " " & prénom
Application.EnableEvents = False
Target = nom
Application.EnableEvents = True
End Sub
edit: je viens de voir que tu parlais de textbox. il faudrait donc ignorer cette procédure événementielle.
voici une version modifiée en fonction
Public Function formnomprénom(n As String)
s1 = InStr(n, ",")
If s1 = 0 Then Exit Function
nom = UCase(Left(n, s1 - 1))
prénom = application.worksheetfunction.proper(mid(n,s1+1))
formnomprénom = nom & " " & prénom
End Function
fonction que tu pourrais utiliser ainsi
nomprénom=formnomprénom(textbox1)
edit : suppression de la partie de code inutile car comprise dans la fonction proper.