Majuscule dans un textbox

  • Initiateur de la discussion Initiateur de la discussion sev
  • 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 !

S

sev

Guest
Bonjour et bon week end ,
Comment avoir automatiquement la première lettre en majuscule après la saisie d'un texte dans un textbox ?

Et avoir la totalité des lettres en majuscules dans un autre textbox ?
 
Re : Majuscule dans un textbox

Bonsoir c'est encore moi !

En fait je viens de m'apercevoir que le code me met une majuscule sur chaque mots.
J'en voudrais seulement une sur le premier mot du textbox et sur les mots qui suivent un point.
 
Re : Majuscule dans un textbox

Bonsoir,
Peut-être comme ça
Code:
Private Sub TextBox1_AfterUpdate()
TextBox1 = UCase(Mid(TextBox1, 1, InStr(1, TextBox1, " ") - 1)) & LCase(Mid(TextBox1, InStr(1, TextBox1, " ")))
End Sub
A+
kjin
 
Re : Majuscule dans un textbox

C'est presque cela :
J'ai le premier mot entier en majuscules ; je voudrais seulement la première lettre.
Le mot suivant un point reste en minuscule , je voudrais la première lettre en majuscule.
 
Re : Majuscule dans un textbox

Bonsoir Sev, kjin

Ci dessous un code à tester

Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'<-- Met en majuscule la première lettre ainsi que la première lettre de chaque phrase du "Textbox" SaisieInfos
Static majuscule As Boolean
'Dim Ponctuation As String
'Ponctuation = ".!:?" ' <-- Ponctuations devant entraîner une majuscule...
If TextBox3.SelStart = 0 Then
    If KeyAscii > 96 And KeyAscii < 123 Then  ' minuscule
        KeyAscii = KeyAscii - 32
        majuscule = False
    End If
  Else
     If majuscule = True Then
        Select Case KeyAscii
            Case 48 To 57 ' chiffres
                majuscule = False
            Case 65 To 90 ' majuscule
                majuscule = False
            Case 97 To 122 ' minuscule
                KeyAscii = KeyAscii - 32
                majuscule = False
            Case 232 To 233 'éè
                KeyAscii = 69
                majuscule = False
            Case 231 'ç
                KeyAscii = 67
                majuscule = False
            Case 224 'à
                KeyAscii = 65
                majuscule = False
            Case 249 'ù
                KeyAscii = 85
                majuscule = False
        End Select
    End If
        If KeyAscii = 46 Or KeyAscii = 33 Or KeyAscii = 63 Then majuscule = True
        
End If

end sub

Il est basé sur la différence de 20H (32) entre les majuscules et minuscules.
SelStart donne le nombre de caractère.
Si le nombre de caractère est supérieur à 1 on mémorise si on a un point, le prochain caractère (sauf l'espace) aura sa casse changé.



JP
 
Dernière édition:
Re : Majuscule dans un textbox

C'est bien pour le premier mot de la textbox , mais si dans mon texte saisi il y a une autre phrase ( après un point ) cela ne met pas de majuscule pour cette 2ème phrase
 
Re : Majuscule dans un textbox

Bonjour sev, kjin, jp14,

Essayer dans le code de l'USF :

Code:
Dim point As Boolean

Private Sub TextBox1_Change()
Dim der As String
der = Right(TextBox1, 1)
If Len(TextBox1) = 1 Or der = "." Then point = True
If point And der <> "." And der <> " " Then
TextBox1 = Application.Replace(TextBox1, Len(TextBox1), 1, UCase(der))
point = False
End If
End Sub

Dim point As Boolean est à placer tout en haut de la page.

Edit : comme l'a fait jp14, c'est plus simple de déclarer point comme variable Static dans la macro :

Code:
Private Sub TextBox1_Change()
[COLOR="Red"]Static point As Boolean[/COLOR]
Dim der As String
der = Right(TextBox1, 1)
If Len(TextBox1) = 1 Or der = "." Then point = True
If point And der <> "." And der <> " " Then
TextBox1 = Application.Replace(TextBox1, Len(TextBox1), 1, UCase(der))
point = False
End If
End Sub

A+
 
Dernière édition:
Re : Majuscule dans un textbox

Bonjour , je voudrais aussi mettre une majuscule après les signes :!?+&
j'ai essayé cela mais ça ne fonctionne pas :
Code:
Dim der As String
der = Right(TextBox8, 1)
If Len(TextBox8) = 1 Or der = ".:!?+&" Then point = True
If point And der <> "." And der <> " " Then
TextBox8 = Application.Replace(TextBox8, Len(TextBox8), 1, UCase(der))
point = False
End If
 
Re : Majuscule dans un textbox

Bonjour sev,

Je suppose que ma macro vous convient, vous ne faites pas beaucoup de commentaires...

Code:
Private Sub TextBox1_Change()
Static point As Boolean
Dim der As String
der = Right(TextBox1, 1)
If Len(TextBox1) = 1 Or [COLOR="Red"]InStr[/COLOR](".:!?+&", der)  Then point = True
If point And [COLOR="Red"]InStr[/COLOR](" .:!?+&", der) = 0 Then
TextBox1 = Application.Replace(TextBox1, Len(TextBox1), 1, UCase(der))
point = False
End If
End Sub

Attention, vous remarquerez que dans le 2ème InStr il y a bien une espace (pas dans le 1er bien sûr).

A+
 
- 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

Réponses
2
Affichages
87
Réponses
10
Affichages
161
  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
278
Retour