Mettre les initiales en majuscule au cours de la frappe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 910 fois - Téléchargée 36 fois

Contenu du snippet

Ce p'ti code met toutes les initiales du contenu d'une textbox en majuscule au cours de la frappe (uniquement si c'est du texte bien sûr)

Source / Exemple :


' - Pour le contrôle TextBox

Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = FirstsInMaj(KeyAscii, Text1)
End Sub

' - La fonction

Function FirstsInMaj(KeyAscii As Integer, TextBoxName As String)
Dim Str
If KeyAscii > 96 And KeyAscii < 123 Then
    If Len(TextBoxName) = 0 Then  
        KeyAscii = KeyAscii - 32
    Else
        Str = Mid(TextBoxName, Len(TextBoxName), 1)
        Select Case Str
            Case "-", "_", " ", "/": KeyAscii = KeyAscii - 32
        End Select
            
    End If
End If
FirstsInMaj = KeyAscii
End Function

Conclusion :


bon ce n'est pas la fonction qui tue, mais ça peut être utile.
Surtout, il faut bien utiliser la fonction dans la méthode KeyPress, sinon ça marche pas. En effet, la fonction UCase en cours de frappe redéplace le pointeur à gauche... c légèrement gênant. ruojnoB au lieu de Bonjour, c'est moyen.
Les mots sont considérés comme séparés si le caractère qui les précède est un tiret (-), un underscore(_), un espace ou un /

Améliorez à votre sauce !!

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2005

Eh bon je trouve le code et trés intréssant mais j'ai un avis pourquoi vous développez pas lors de la saisie d"un texte la premiére caratére qui vous entrez automatiquement devenir en majuscule sauf les autres caratéres sont en minuscules par expemle vous entrez une ville "rabat" lors de la siaie il donne "Rabat".
Messages postés
439
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
1
Encore une autre méthode !

Private Sub Text1_KeyPress(KeyAscii As Integer)
Text1 = StrConv(Text1, vbProperCase)
Text1.SelStart = Len(Text1)
End Sub

ça fait un petit effet zarbi mais bon...vue que j'chui faignant !

@+, VIC
Messages postés
11
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
22 avril 2008

Pour le text box
------------------

Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii=FirstsInMaj(KeyAscii, Text1)
End Sub


Dans le code de la form ou ds un module
-----------------------------------------------

Function FirstsInMaj(KeyAscii As Integer, TextBoxName As TextBox)
Dim Str
If KeyAscii > 96 And KeyAscii < 123 Then
If Len(TextBoxName) = 0 Then
KeyAscii = KeyAscii - 32
Else
Str = Mid(TextBoxName, TextBoxName.SelStart, 1)
Select Case Str
Case "-", "_", " ", "/": KeyAscii = KeyAscii - 32
End Select
If TextBoxName.SelStart = 0 Then
KeyAscii = KeyAscii - 32
End If
End If
End If
FirstsInMaj = KeyAscii
End Function



Le pti commentaire comme d'hab
-------------------------------------
En fait, le code de Renfiels marche au poil, sauf qu'il faut l'intégrer dans une fonction et non pas dans une procédure ;) En résumé, finalement, Merci Renfield lol. Je sais j'ai mis du temps... Mais on ne se penche sur les choses que lorsqu'on en a vraiment besoin ;)
Messages postés
7
Date d'inscription
mercredi 29 janvier 2003
Statut
Membre
Dernière intervention
28 juin 2010

Que c'est compliqué ...


Sub text1_KeyPress(KeyAscii as integer)
KeyAscii = Asc(Ucase(Chr(Keyascii)))
End Sub
Messages postés
11
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
22 avril 2008

Un seul petit inconvénient pour la fonction UCase (désolé pour le retard de réponse, mais j'ai eu des soucis de connec) elle est super lente à l'interprétation et en +, elle intervient après la frappe... c'est pour ça que je ne l'utilise pas ds mes codes (ou uniquement en cas de contrôl postérieur à la frappe, c'est, je pense, le seul avantage qu'elle présente.) Le plus léger pour la machine étant de travailler avec des entiers, ce qui ne demande que très peu de ressource au moment du calcul. Merci en tout K pour tous ces commentaires, je vais me pencher sur l'amélioration de tout ça ;)
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.