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) ?
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
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
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
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
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 "?"
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 ;
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)direction-ternoise@wanadoo.fr> a écrit dans le message
de news:exLtLQgvEHA.2316@TK2MSFTNGP15.phx.gbl...
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 ;
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 ;
David
Bonjour et merci
Et pour que cela soit parfait comment mettre à la fin le signe euros ?
Encore merci
David
Bonjour et merci
Et pour que cela soit parfait comment mettre à la fin le signe euros ?
Et pour que cela soit parfait comment mettre à la fin le signe euros ?
Encore merci
David
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
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)direction-ternoise@wanadoo.fr> a écrit dans le message
de news:eJy2kMmvEHA.3916@TK2MSFTNGP10.phx.gbl...
Bonjour et merci
Et pour que cela soit parfait comment mettre à la fin le signe euros ?
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
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
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
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