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) ?
essaie ce code pour l'exemple ma zone de texte s'appelle TEXTE0
Sub Texte0_AfterUpdate Texte0.ValueÍbl(texte0.value) End sub
Sub Texte0_KeyPress (Keyascii As integer) If KeyasciiD then keyasciiF 'Remplace le point par la virgule If keyasciiF then If instr(1,texte0.text,chr(46))>0 then keyascii=0 End if If KeyAscii <> 10 And KeyAscii <> 13 And KeyAscii <> 8 And KeyAscii <> 46 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0 End sub
Chez moi, le point n'est pas pris en compte donc je le remplace par la virgule
Bonjour Isabelle
On peux faire un point mais pas une virgule d'ou ma question :
Comment faire une virgule avec cette cette fonction
Merci
essaie ce code pour l'exemple ma zone de texte s'appelle TEXTE0
Sub Texte0_AfterUpdate
Texte0.ValueÍbl(texte0.value)
End sub
Sub Texte0_KeyPress (Keyascii As integer)
If KeyasciiD then keyasciiF 'Remplace le point par la virgule
If keyasciiF then
If instr(1,texte0.text,chr(46))>0 then keyascii=0
End if
If KeyAscii <> 10 And KeyAscii <> 13 And KeyAscii <> 8 And KeyAscii <> 46
And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
End sub
Chez moi, le point n'est pas pris en compte donc je le remplace par la virgule
Bonjour Isabelle
On peux faire un point mais pas une virgule d'ou ma question :
Comment faire une virgule avec cette cette fonction
essaie ce code pour l'exemple ma zone de texte s'appelle TEXTE0
Sub Texte0_AfterUpdate Texte0.ValueÍbl(texte0.value) End sub
Sub Texte0_KeyPress (Keyascii As integer) If KeyasciiD then keyasciiF 'Remplace le point par la virgule If keyasciiF then If instr(1,texte0.text,chr(46))>0 then keyascii=0 End if If KeyAscii <> 10 And KeyAscii <> 13 And KeyAscii <> 8 And KeyAscii <> 46 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0 End sub
Chez moi, le point n'est pas pris en compte donc je le remplace par la virgule
Bonjour Isabelle
On peux faire un point mais pas une virgule d'ou ma question :
Comment faire une virgule avec cette cette fonction
Merci
David
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate() TextBox1.Value = CDbl(TextBox1.Value) End Sub
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate()
TextBox1.Value = CDbl(TextBox1.Value)
End Sub
Ah! c'est quoi le contenu de Textbox1 ? Quel est le symbol decimal declare dans Panneau de Configuration |_ Options Regionales
essai une de ces conversions CDec(TextBox1) - CLng(TextBox1) - CCur(TextBox1) essaie aussi sans conversion
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate() TextBox1.Value = CDbl(TextBox1.Value) End Sub
michdenis
Bonjour David,
Question 1
Pour mettre tout en majuscule dans le textbox '--------------------- Private Sub TextBox1_Change()
Dim A As Variant A = Me.TextBox1 A = UCase(A) Me.TextBox1 = A
End Sub '---------------------
Question 2 la saisie d'un format numérique :
Voici je t'ai fait une fonction qui se charge de limiter :
A ) la saisie aux chiffres seulement.
B ) la saisie que de 1 séparateur décimal , virgule ou point dans la boîte de saisie et ce d'après le système en vigueur sur la machine.
C ) Cette fonction peut servir à un nombre indéterminé de textbox de ton formulaire.
D ) En copiant cette fonction dans un module standard, elle peut être utilisé pour tous les formulaires de ton projet qui ont le même besoin.
Pour appeler la fonction pour chaque texbox voici le code à saisir :
---------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = CheckLaSaisie(TextBox1, KeyAscii)
End Sub ------------------
Voici la fonction à copier dans un module standard
------------------ Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)
Dim SepDec As String SepDec = Application.International(xlDecimalSeparator)
If Char = 44 Or Char = 46 Then If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then CheckLaSaisie = 0 Else CheckLaSaisie = Asc(SepDec) End If Else If Char < 48 Or Char > 58 Then CheckLaSaisie = 0 Else CheckLaSaisie = Char End If End If
End Function -------------------------------------
Salutations!
"David" <(Pas de Spam) a écrit dans le message de news: 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
Bonjour David,
Question 1
Pour mettre tout en majuscule dans le textbox
'---------------------
Private Sub TextBox1_Change()
Dim A As Variant
A = Me.TextBox1
A = UCase(A)
Me.TextBox1 = A
End Sub
'---------------------
Question 2 la saisie d'un format numérique :
Voici je t'ai fait une fonction qui se charge de limiter :
A ) la saisie aux chiffres seulement.
B ) la saisie que de 1 séparateur décimal , virgule ou point
dans la boîte de saisie et ce d'après le système en vigueur
sur la machine.
C ) Cette fonction peut servir à un nombre indéterminé de textbox
de ton formulaire.
D ) En copiant cette fonction dans un module standard, elle peut être
utilisé pour tous les formulaires de ton projet qui ont le même besoin.
Pour appeler la fonction pour chaque texbox voici le code à saisir :
----------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = CheckLaSaisie(TextBox1, KeyAscii)
End Sub
------------------
Voici la fonction à copier dans un module standard
------------------
Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)
Dim SepDec As String
SepDec = Application.International(xlDecimalSeparator)
If Char = 44 Or Char = 46 Then
If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Asc(SepDec)
End If
Else
If Char < 48 Or Char > 58 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Char
End If
End If
End Function
-------------------------------------
Salutations!
"David" <(Pas de Spam)direction-ternoise@wanadoo.fr> a écrit dans le message de
news:u6UjyXdvEHA.3792@TK2MSFTNGP10.phx.gbl...
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) ?
Pour mettre tout en majuscule dans le textbox '--------------------- Private Sub TextBox1_Change()
Dim A As Variant A = Me.TextBox1 A = UCase(A) Me.TextBox1 = A
End Sub '---------------------
Question 2 la saisie d'un format numérique :
Voici je t'ai fait une fonction qui se charge de limiter :
A ) la saisie aux chiffres seulement.
B ) la saisie que de 1 séparateur décimal , virgule ou point dans la boîte de saisie et ce d'après le système en vigueur sur la machine.
C ) Cette fonction peut servir à un nombre indéterminé de textbox de ton formulaire.
D ) En copiant cette fonction dans un module standard, elle peut être utilisé pour tous les formulaires de ton projet qui ont le même besoin.
Pour appeler la fonction pour chaque texbox voici le code à saisir :
---------------- Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
KeyAscii = CheckLaSaisie(TextBox1, KeyAscii)
End Sub ------------------
Voici la fonction à copier dans un module standard
------------------ Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)
Dim SepDec As String SepDec = Application.International(xlDecimalSeparator)
If Char = 44 Or Char = 46 Then If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then CheckLaSaisie = 0 Else CheckLaSaisie = Asc(SepDec) End If Else If Char < 48 Or Char > 58 Then CheckLaSaisie = 0 Else CheckLaSaisie = Char End If End If
End Function -------------------------------------
Salutations!
"David" <(Pas de Spam) a écrit dans le message de news: 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
isabelle
est que comme ça, ca irait.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Value = Format(TextBox1.Value, "0.00") End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'remplacer 46 par 44 pour la virgule texte = TextBox1.Value & Chr(KeyAscii) If Not IsNumeric(Chr(KeyAscii)) Then If KeyAscii = 46 Then For i = 1 To Len(texte) If Mid(texte, i, 1) = "." Then x = x + 1 If x > 1 Then KeyAscii = 0 Exit For End If Next Else KeyAscii = 0 End If End If End Sub
isabelle
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate() TextBox1.Value = CDbl(TextBox1.Value) End Sub
est que comme ça, ca irait.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1.Value, "0.00")
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'remplacer 46 par 44 pour la virgule
texte = TextBox1.Value & Chr(KeyAscii)
If Not IsNumeric(Chr(KeyAscii)) Then
If KeyAscii = 46 Then
For i = 1 To Len(texte)
If Mid(texte, i, 1) = "." Then x = x + 1
If x > 1 Then
KeyAscii = 0
Exit For
End If
Next
Else
KeyAscii = 0
End If
End If
End Sub
isabelle
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate()
TextBox1.Value = CDbl(TextBox1.Value)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Value = Format(TextBox1.Value, "0.00") End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'remplacer 46 par 44 pour la virgule texte = TextBox1.Value & Chr(KeyAscii) If Not IsNumeric(Chr(KeyAscii)) Then If KeyAscii = 46 Then For i = 1 To Len(texte) If Mid(texte, i, 1) = "." Then x = x + 1 If x > 1 Then KeyAscii = 0 Exit For End If Next Else KeyAscii = 0 End If End If End Sub
isabelle
Cela donne :
Incompatibilité de type Erreur d'execution 13
dans
Private Sub TextBox1_AfterUpdate() TextBox1.Value = CDbl(TextBox1.Value) End Sub
David
Re Isabelle
Désolé pour cette réponse tardive, je suis de garde donc partis en intervention
Merci pour cette réponse mais "texte" variable non défini
sinon le code de michdenis à l'air de me convenir
encore merci
Re Isabelle
Désolé pour cette réponse tardive, je suis de garde donc partis en
intervention
Merci pour cette réponse mais "texte" variable non défini
Désolé pour cette réponse tardive, je suis de garde donc partis en intervention
Merci pour cette réponse mais "texte" variable non défini
sinon le code de michdenis à l'air de me convenir
encore merci
David
Bonsoir Désolé pour le retard dans ma réponse du à des contrainte pro.
Question 1, pas de problème
Question 2 Un grand merci, cela fonctionne presque parfaitement !!! Quand j'appui sur la touche "point" cela me mets une virgule (impec) et quand j'appui sur la touche "virgule" cela n'inscrit rien. J'aimerais que cela inscrive également une "virgule". En clair, que l'on actionne "point" ou "virgule" cette action doit mettre une "virgule".
Encore merci
Bonsoir
Désolé pour le retard dans ma réponse du à des contrainte pro.
Question 1, pas de problème
Question 2 Un grand merci, cela fonctionne presque parfaitement !!!
Quand j'appui sur la touche "point" cela me mets une virgule (impec) et
quand j'appui sur la touche "virgule" cela n'inscrit rien. J'aimerais que
cela inscrive également une "virgule".
En clair, que l'on actionne "point" ou "virgule" cette action doit mettre
une "virgule".
Bonsoir Désolé pour le retard dans ma réponse du à des contrainte pro.
Question 1, pas de problème
Question 2 Un grand merci, cela fonctionne presque parfaitement !!! Quand j'appui sur la touche "point" cela me mets une virgule (impec) et quand j'appui sur la touche "virgule" cela n'inscrit rien. J'aimerais que cela inscrive également une "virgule". En clair, que l'on actionne "point" ou "virgule" cette action doit mettre une "virgule".
Encore merci
David
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 ;
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 ;