première lettre d'un mot en majuscule dans une textbox ?

S

Syl

Guest
bonjour,

j'ai fait un userform pour saisir des adresses.
Pour simplifier la saisie et la standarisée je me demandais s'il était possible de mettre la première lettre du prénom en majuscule automatiquement lors de sa saisie dans la textbox ?

merci d'avance pour votre aide
syl
 
E

Evelynetfrancois

Guest
Juste une info !!
je n'ai pas de reponse pour ce cas precis par contre @christophe@ m'a donné cette semaine cette macro qui force les majuscules dans un Textbox.
Dans ton cas, peut etre valable pour les NOMS

Private Sub textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
salut

Evelynetfrancois
 
@

@+Thierry

Guest
Salut Syl, Evelyne et François, et le Forum


Huum si tu n'as que des Prénoms non-composés la solution la plus simple que j'ai trouvée est ceci :

Private Sub TextBox1_Change()
Dim Initiale As String, Reste As String
If Len(TextBox1) > 1 Then
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
End If
End Sub


Maintenant pour les Prénoms composés il faut le faire avec Split qui lui n'est pas gèré en dessous d'Excel 2000 (Donc Sorry pour les Exceliens/iennes Nonante Septième !!)

Option Explicit

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim LePrenom As Variant
Dim Initiale As String, Initiale1 As String, Initiale2 As String
Dim Reste As String, Reste1 As String, Reste2 As String
Dim Z As String

Z = " "

TextBox1 = LCase(TextBox1)
LePrenom = Split(TextBox1, Chr(32))
If UBound(LePrenom) = 0 Then LePrenom = Split(TextBox1, Chr(45)): Z = "-"
If UBound(LePrenom) = 0 Then LePrenom = Split(TextBox1, Chr(46)): Z = "."


Select Case UBound(LePrenom)
Case 0
Initiale = UCase(Left(TextBox1, 1))
Reste = LCase(Right(TextBox1, Len(TextBox1) - 1))
TextBox1 = Initiale & Reste
Case 1
Initiale1 = UCase(Left(LePrenom(0), 1))
Reste1 = LCase(Right(LePrenom(0), Len(LePrenom(0)) - 1))
Initiale2 = UCase(Left(LePrenom(1), 1))
Reste2 = LCase(Right(LePrenom(1), Len(LePrenom(1)) - 1))
TextBox1 = Initiale1 & Reste1 & Z & Initiale2 & Reste2
End Select
End Sub


Il y a peut-être plus simple à faire, mais celà tourne... Ici on considère le séparateur de prénom comme étant l'espace.... Si tu utilises autre chose qu'un espace, un trait d'union ou un point comme séparateur de prénoms composés il faut rajouter ce caractère...


Bon Appétit à tous et toutes

Parfois y des truc qui semble tout simple et qui sont un casse tête à gérer !!!

@+Thierry
 
@

@+Thierry

Guest
si si Evelyne (et/ou François)


c'est très simple d'ailleurs...

Je l'ai révé...................................................................................................
..............................................................................................VBA l'a fait !!!



lol
@+Thierry
 
@

@+Thierry

Guest
Re Bonjour Syl, le Fil, le Forum

Merci du Compliment,

Je ne pense pas être spécialement fort, j'ai juste pas mal d'années d'expérience 200% autodidacte... Et des centaines de nuits blanches à mon actif pour avoir galéré à trouver telle ou telle solution qui m'ont finalement permis de bosser dans la branche... Voilà grosso Modo... Quand j'ai débuté il n'y avait que Win3 et Excel4, et pas d''Internet ni de CD...

Et je dois dire aussi que j'apprends beaucoup avec ce Forum.

Bon Après Midi
@+Thierry
 
J

Jean-Marie

Guest
Bonjour, tout le monde

Est-ce que cette fonction ne pourrait-elle pas remplacer, les lignes de codes ?

TextBox1 = Evaluate("PROPER(" & Chr(34) & TextBox1 & Chr(34) & ")")

Bonne journée

@+Jean-Marie
 
@

@+Thierry

Guest
Re Bonjour tout le monde,

Merci Jean Marie pour cette rencontre avec "Proper" et après un peu de tests sur cette Function voici ce que l'on faire le plus simplement du monde :


Private Sub TextBox1_Change()
TextBox1 = Application.Proper(TextBox1)
End Sub


Ma macro ci-dessus est vraiment une usine à gaz pour rien du tout !!! Mdrrrr
Comme quoi ce Forum est une vraie Mine d'Or ! et l'Union Fait la Force !

Bon Week End à Tous et Toutes
@+Thierry
 
S

Syl

Guest
Merci, tout le monde, merci jean-marie pour cette brillante idée.
Merci encore à tous pour votre aide ! !
J’ ai profité de ce long WE pour rester loin de la civilisation et des micros c’est pourquoi je ne vous avais pas encore remercié.
Grâce à vous tous je vais avoir un répertoire super propre et bien standardisé.

Bonne semaine à tous
Syl :))
 

Discussions similaires

Réponses
9
Affichages
523
Réponses
93
Affichages
2 K

Statistiques des forums

Discussions
312 824
Messages
2 092 489
Membres
105 429
dernier inscrit
Okamoon