Formater un nom composé avec les 1eres lettres en majuscule (charles edouard devient charles edouard)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 415 fois - Téléchargée 29 fois

Contenu du snippet

Dans un textbox, sans vous soucier des majuscules ou des minuscules, ce code mettra la première lettre de chaque mot en majuscule et les autres en minuscules. Choisissez vous même la séparation des mots : espace ou tiret, pas de problème, les sont pris en compte.

Source / Exemple :


Pour ce code, il vous faut un textbox nommé TxtPrenom.
Recopier ce code tel quel.

Private Sub TxtPrenom_keypress(keyascii As Integer)
Dim D
'           Compte le nombre de lettres du contrôle
D = Len(TxtPrenom)
'            Si ce décompte est égal à 0, met la lettre en majuscule
'           par la fonction Frappe
If D = 0 Then
keyascii = Frappe(keyascii)
Exit Sub
'           sinon, vérifie que le caractère précédent est :
'            Soit un espace 
'           Soit un tiret
'           dans ce cas  applique également la fonction Frappe (pour mettre la lettre en majuscule)
ElseIf Right(TxtPrenom, 1) = " " Or Right(TxtPrenom, 1) = "-" Then
keyascii = Frappe(keyascii)
Exit Sub
Else
'           Sinon, application du code de passage en minuscule
keyascii = LCase(keyascii)
End If
End Sub

Function Frappe(keyascii As Integer)
' Mise en MAJUSCULE
'           Vérifie que le code ASCII correspond à une MAJUSCULE
'           Code situé entre 96 et 123
If keyascii > 96 And keyascii < 123 Then
'           si le code correspond à un code de minuscule, lui retire une valeur de 32,
'           concordance entre la lettre minuscule et sa majuscule
keyascii = keyascii - 32
End If
'            Attribue la nouvelle valeur du code
Frappe = keyascii
End Function

Conclusion :


C'est mon premier code sur ce site. Normalement, ça marche
En cas d'erreur, me contacter sur collectionpieces@free.fr.

A voir également

Ajouter un commentaire

Commentaires

DjZebulon
Messages postés
19
Date d'inscription
lundi 11 mars 2002
Statut
Membre
Dernière intervention
12 décembre 2005

Salut voila pour ma part un bout de code que j'ai mis sur le net il y a un momment :






<script language="VBScript">
Function Format_Prenom(Chaine)
'Transforme la 1ere lettre d un prénom en maj
Dim intLen
Dim intIdx
Dim a
Dim strFinale
Chaine = LCase(Chaine)
intLen = Len(Chaine)
For intIdx = 1 To intLen
a = Mid(Chaine, intIdx, 1)
If intIdx 1 Then a UCase(a)
If intIdx > 2 Then
If Mid(Chaine, intIdx - 1, 1) " " Then a UCase(a)
If Mid(Chaine, intIdx - 1, 1) "-" Then a UCase(a)
End If
strFinale = strFinale & a
Next
Format_Prenom = strFinale
End Function
</script>
cboulas
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
Salut, la même chose en .NET ?
cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
64
Pas de réaction ...
Essaye de corriger l'affichage de ta source stp, ou mieux, nous faire une petite source en Zip.
cs_Jack
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
64
Salut
L'exemple du titre est très bien choisi !
Je plaisante : pas de bol, les textes sont convertis en majuscules ...

Sinon, et sans te démoraliser, la fonction suivante fait la même chose que ta source :
StrConv("paul lucien", vbProperCase)

En plus, pas facile d'essayer ta source : Le code déposé a quelques soucis d'affichage et il n'y a pas de Zip

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.