1ere lettre en majuscule de chaque mot dans un Textbox ouCobobox

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 !

J-Charles

XLDnaute Occasionnel
Bonjour à tous,

J'aimerais lors de la saisie dans un textbox ou un comcocbox que la 1ere lettre de chaque mot se mette en majuscule mais également si ces mots sont simplement séparés par un tiret - ou deux points : ou un espace. Il s'agit en l’occurrence de prénom. Je souhaiterais que le changement se fasse lors de la saisie donc en utilisant Change.
J'ai cherché un peu partout mais le seul code que j'ai trouvé ne fonctionne pas.
Je vous remercie par avance de votre aide
 
Re : 1ere lettre en majuscule de chaque mot dans un Textbox ouCobobox

Bonjour
Je souhaiterais que le changement se fasse lors de la saisie donc en utilisant Change.
Non, je pense que vous souhaiteriez dans la mesure du possible que le changement se fasse lors de la frappe donc en utilisant Keypress.
VB:
Private Sub TBx_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim C As String * 1
If TBx.SelStart > 0 Then C = Mid$(TBx.Text, TBx.SelStart, 1)
If UCase$(C) <> LCase$(C) Then KeyAscii.Value = Asc(LCase$(Chr$(KeyAscii.Value))) _
                 Else KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value)))
End Sub
Extrait d'un code plus général que je vous livre à tout hasard :
VB:
Private Sub TBx_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim C As String * 1
On ClauseFrappe GoTo Nom, Phrase, Prénom, Virgule, Heure
Exit Sub
Nom: KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value)))
Exit Sub
Phrase: If TBx.SelStart = 0 Then KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value)))
Exit Sub
Prénom: If TBx.SelStart > 0 Then C = Mid$(TBx.Text, TBx.SelStart, 1)
If UCase$(C) <> LCase$(C) Then KeyAscii.Value = Asc(LCase$(Chr$(KeyAscii.Value))) _
                          Else KeyAscii.Value = Asc(UCase$(Chr$(KeyAscii.Value)))
Exit Sub
Virgule: If KeyAscii.Value = Asc(".") Then KeyAscii.Value = Asc(",")
Exit Sub
Heure: If InStr(TBx.Text, ":") > 0 Or TBx.SelStart < TBx.TextLength Or KeyAscii.Value = Asc(":") Then Exit Sub
   If TBx.TextLength < 2 Then On Error Resume Next: If TBx.Text & Chr$(KeyAscii.Value) < 24 Then Exit Sub
   Application.SendKeys Chr$(KeyAscii.Value): KeyAscii.Value = Asc(":")
End Sub
 
- 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

Discussions similaires

Retour