Forcer la 1er lettre majuscule dans une TxtBox [Résolu]

Signaler
Messages postés
46
Date d'inscription
mercredi 1 février 2006
Statut
Membre
Dernière intervention
30 octobre 2007
-
Messages postés
2
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2006
-
Bonjour à tous,

voici mon problème je suis sur que c'est tout con mais bon je ne trouve pas mdr.

Je fais un programme de gestion de stock et j'aimerais que dans ma texte box de produits, lorsque l'utilisateur entre le produit, la première lettre se mette automatiquement en majuscule quoi qu'il fasse et tout le reste en minuscule. Je signale aussi que j'ai un filtre dans ma txtbox on ne sait jamais c'est toujours mieux de mettre toutes les infos possibles. ha oui je programme en VB 6.0.

merci beaucou d'avance pour votre aide.

11 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

il faut jouer avec le numéro ascii dans l'évènement Text1_KeyPress

Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Text1.SelStart =  0 And KeyAscii > 96 And KeyAscii < 123 Then _
        KeyAscii = KeyAscii - 32
End Sub

~<small> Mortalino </small>~

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Il vaut mieux, je pense, faire la vérification à chaque fois car si le gars fait un copier coller, je suis pas sûr que ca fonctionne, et surtout, ca ne l'empêche pas de taper des majuscules après la première lettre :

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim sText As String
    sText = Text1.Text
    Text1.Text = UCase(Left(sText, 1) & LCase(Right(sText), len(sText))

End Sub
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Pas pensé au copier / coller, bien vu !

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>

Salut,
En VB6 éssaie ca:

Private Sub Text1_LostFocus()
Text1.Text = UCase(Left(Text1.Text, 1)) & Right(Text1.Text, (Len(Text1.Text) - 1))
End Sub

 A+

A.C.I.V.E SARL
Automatismes Conception Informatique Vidéo Electronique
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
Tiens donc, c'est la solution que j'ai proposé... ;)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
A part que ça n'a aucun intérêt de mettre ce code dans le LostFocus.
C'est bien mieux sur l'évènement KeyPress

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
104
oui carrément !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
24
Moi je veux bien, mais j'ai lu plus haut une remarque tout-à-fait justifiée sur les risques d'un copier-coller...
Alors ? Depuis quand le copier-coller déclenche-t-il un événement KeyPress ?
Zisouitoutoui spliquémoi sanfoubli  
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Oui, pas bête.
On ne peut penser à tout

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
24
Quand c'est comme çà, on peut prendre l'habitude (corse à moitié malgré mon patronyme espagnol) de "zigouiller" le clipboard au gotfocus (celà évite la multiplication de contrpôles lors de l'événement Change ou au LostFocus)
Messages postés
2
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
13 décembre 2006

Autre technique pour faire un uppercase sur la 1er lettre :
text1.text=strconv("text1.text",3)