• Initiateur de la discussion Initiateur de la discussion Djay
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Djay

Guest
Bonjour à tous! J'essaye de mettre un format spécifique pour le nom et le prénom du type Majuscule pour le nom et pour la première lettre du prénom et minuscule pour le reste du prénom. Pour le Nom je force avec Ucase jusqu'à ce qu'on arrive à l'espace ensuite je fais une sous-chaine pour le prénom mets ça me plante. Mon nom et mon prénom je l'ai rentre dans une même combobox et ensuite je les recolle dans une cellule par ordre alphbétique et pour ça pas de problème mais ça coince avec le format. Peut-être que mon tri alphabétique et mon collage empêche le format de ma combobox?
Merci d'avance et bonne journée.
Djay
 
Bonjour le Forum
Bonjour Robert, Re Djay

Merci beaucoup pour ta réponse Robert que je me suis empressé de mettre au chaud. Toutefois, j'ai tenté de retranscrire cette formule en VB mais je n'y parvient pas.
Mon souhait serait que des utilisateurs saisissent un nom & prénom dans un TextBox comme ils en ont envie Exemples : CAULIER ERIC ou caulier eric ou Caulier eric ...... et que la valeur saisie devienne : CAULIER Eric.
Sinon je te remercie cordialement.
Bon Week end
@++ Eric C
 
Re le forum
Re Djay (déjà en W.end, on ne t'entend pas ??), Re Robert

Après moultes recherches j'ai trouvé ceci mais malheureusement qui ne met les Majuscules qu'au début des "mots" trouvés. Je persiste dans mes recherches.
Private Sub CommandButton1_Click()
TextBox1.Value = Application.WorksheetFunction.Proper_(TextBox1.Value)

End Sub

@ ++ Eric C
 
Bonjour le forum
Bonjour Djay, Robert & Michel

Je n'ai pu poster avant car modem planté. Donc un grand Merci Michel, j'ai pu appliquer ton code à mon TextBox, 2peccable.
Cela faisait un bail que j'attendais une telle soluce.
Bon Week-End à toutes & à tous.

@ ++ Eric C
 
Re le forum
Re bonjour Michel

Puis je abuser de ta générosité ?? Oui, merci beaucoup, pourrais tu (je me prend la tête avec les formules) me donner le code pour le nom (en premier) puis le prénom caulier eric ==> CAULIER Eric . Je n'arrive pas à me dépétrer dans les codes. Te remerciant par anticipation de ton obligeance.
@++ Eric C
 
voici une fonction qui fait cela, et qui peut être appelée directement dans une feuille de calcul.

Function NOMPrenom$(ByVal NP$)
'Ti
Dim Tabl
If NP = "" Then Exit Function
Tabl = Split(StrConv(NP, vbProperCase))
Tabl(0) = UCase(Tabl(0))
NOMPrenom = Join(Tabl)
End Function

Noter que j'utilise ici Split qui, pour une fois (n'est ce pas @Thierry) me permet de rendre l'écriture de ma fonction plus concise.


Attention Michel, la procédure que tu indiques dans ton lien renvoie une erreur si une des chaines "NOM Prénom" ne comporte pas d'espace (faute de frappe ou autre) ou si c'est une chaîne vide, parce que tu ne testes pas si ta valeur SP est supérieure ou non à 0

D'autre part, tu utilises le mauvais type pour déclarer ta variable SP dans la procédure : tu donnes à SP un type String, alors que Instr renvoie une valeur numérique et pas une chaîne. VB s'accommode de cette imprécision, mais il vaut mieux garder le bon type.

Sub PrenomNOM()
Dim Val As Variant
Dim SP As String

For Each Val In Range("A1:A" & Range("A65536").End(xlUp).Row)
SP = InStr(1, Val, " ")
Range(Val.Address) = UCase(Left(Val, 1)) & LCase(Mid(Val, 2, SP - 1)) & UCase(Right(Val, Len(Val) - SP))
Next

End Sub
 
Tiens, dans la foulée : une deuxième fonction PrenomNOM pour faire l'inverse.

Function NOMPrenom$(ByVal NP$)
'Ti
Dim Tabl
Tabl = Split(StrConv(NP, vbProperCase))
If UBound(Tabl) >= 0 Then Tabl(0) = UCase(Tabl(0))
NOMPrenom = Join(Tabl)
End Function

Function PrenomNOM$(ByVal NP$)
'Ti
Dim Tabl
Tabl = Split(StrConv(NP, vbProperCase))
If UBound(Tabl) >= 1 Then Tabl(1) = UCase(Tabl(1))
PrenomNOM = Join(Tabl)
End Function
 
Re le forum
Re bonjour Djay, Robert & Michel
Bonjour Ti

Je te remercie vivement et garde bien au chaud tes fonctions.
Néanmoins mon problème est que je me sert uniquement de TextBoxs pour l'affichage de mon nom & prénom. Y a t'il possibilité de transposer le code de tes fonctions pour arriver à mes fins. Personnellement, je n'y parviendrai pas.
Mon code était celui de Michel mais je désirerais le contraire Nom Prénom
j'avais donc remplacer Val par TextBox1.Value. Vous remerciant par avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
506
Réponses
2
Affichages
119
  • Question Question
Réponses
5
Affichages
321
Réponses
37
Affichages
714
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
526
Réponses
4
Affichages
569
  • Question Question
Microsoft 365 Nom et prénom
Réponses
3
Affichages
494
Retour