OVH Cloud OVH Cloud

Code pour TextBox

41 réponses
Avatar
David
Bonjour/soir

Comment activer ou désactiver la touche Majuscule en VB ?

Je m'explique

A l'arrivée d'un TextBox dans un UserForm, j'aimerais qu'une fonction active
la touche majuscule et qu'à la sortie de ce textBox la touche majuscule soit
désactiver.

Deux autres questions

Comment obliger un utilisateur à rentrer dans un TextBox un format numérique
?

Comment obliger un utilisateur à rentrer dans un TextBox un montant en euros
(format 122,54 ?) en tapant juste 122.54 (point) ou 122,54 (virgule) ?

Un grand merci pour vos réponses et votre aides

Bonne soirée


David

10 réponses

1 2 3 4 5
Avatar
Ilan
Re,Re
Désolé j'ai confondu le point et la virgule (44 et 46)

essaie ce code pour l'exemple ma zone de texte s'appelle TEXTE0

Sub Texte0_AfterUpdate
Texte0.Value=FormatNumber(CDbl(texte0.value),2)
End sub

Sub Texte0_KeyPress (Keyascii As integer)
If KeyasciiF then keyasciiD 'Remplace le point par la virgule
If keyasciiD then
If instr(1,texte0.text,chr(44))>0 then keyascii=0
End if
If KeyAscii <> 10 And KeyAscii <> 13 And KeyAscii <> 8 And KeyAscii <> 44
And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
End sub



Désolé j'ai envoyé dans ta bal perso par erreur





Avatar
David
Bonjour Ilan

Ta proc est très intéressante car elle a l'avantage de pouvoir mettre qu'une
seul virgule.
par contre mon textbox elle formater grâce à cette ligne

Private Sub TextBox8_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox8.Value = Format(TextBox8.Value, "#,##0.00 ?")
End Sub

dans ce cas le signe ? ne fonctionne plus
1° peut on résoudre ce problème ?

2° Este possible d'avoir la même chose mais en plus que cela fonctionne avec
les touches ";" et "?"

Merci de ton aide très précieuse

Salutations

David
Avatar
Misange
Bonjour David
quand tu auras une proc parfaite, pourras tu la remettre in extenso ici
que d'autres en profitent ?
merci !

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 30/10/2004 09:31:
Bonjour Ilan

Ta proc est très intéressante car elle a l'avantage de pouvoir mettre qu'une
seul virgule.
par contre mon textbox elle formater grâce à cette ligne

Private Sub TextBox8_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
TextBox8.Value = Format(TextBox8.Value, "#,##0.00 ?")
End Sub

dans ce cas le signe ? ne fonctionne plus
1° peut on résoudre ce problème ?

2° Este possible d'avoir la même chose mais en plus que cela fonctionne avec
les touches ";" et "?"

Merci de ton aide très précieuse

Salutations

David





Avatar
David
? est égal au signe euro
Avatar
David
Bonjour Misange

Oui bien sur, il n'y a pas de problème

Bonne journée

David
Avatar
Michel Pierron
Bonjour David;

Private Sub TextBox1_Change()
Me.TextBox1 = CleanChain(Me.TextBox1)
End Sub

Private Function CleanChain(Chain As String) As String
Const Cars As String = "0123456789,.?;"
Dim L As String * 1, i As Integer
For i = 1 To Len(Chain)
L = Mid(Chain, i, 1)
Select Case L
Case ",", ".", "?", ";"
L = Application.International(xlDecimalSeparator)
If InStr(1, CleanChain, L) Then GoTo 1
End Select
If InStr(1, Cars, L) Then CleanChain = CleanChain & L
1: Next i
End Function

MP

"David" <(Pas de Spam) a écrit dans le message
de news:
Après plusieurs essai, erreur de ma part

Donc

Une virgule doit ce mettre après appuis sur "point" (c'est bon), sur
"virgule" (c'est bon) mais aussi sur ? et sur ;




Avatar
David
Bonjour et merci

Et pour que cela soit parfait comment mettre à la fin le signe euros ?

Encore merci

David
Avatar
Michel Pierron
Re David;
Il est tellement plus simple de choisir l'alignement à droite pour le
textbox et d'ajouter un label ayant le signe euro pour caption juste à
droite du textbox.
MP

"David" <(Pas de Spam) a écrit dans le message
de news:
Bonjour et merci

Et pour que cela soit parfait comment mettre à la fin le signe euros ?

Encore merci

David





Avatar
JièL Goubert
Bonjoir(c) David

Si tu ne veux pas de transformation de ton zoli ¤ en ? il faut que tu
paramettre ton OE pour le codage "latin 9 (iso)".
Menu Outils, Options, onglet Envois, Paramètres internationnaux tu choisi
latin 9 (iso).

--
La FAQ Outlook est la : http://faq.outlook.free.fr
JièL / Jean-Louis GOUBERT
Co-auteur de "Internet + de 1 000 trucs de pros" chez Micro Application
http://faq.outlook.free.fr/livreMA/internet_plus_de_1000_trucs_de_pros.htm

Le 30/10/2004 09:57 vous avez écrit ceci :
? est égal au signe euro


Avatar
David
Bonjour

C'est fait, merci
1 2 3 4 5