Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Limiter le nombre de caractères à 2 après avoir choisi le point

7 réponses
Avatar
Denys
Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys

7 réponses

Avatar
isabelle
bonjour Denys,

Private Sub TextBox1_AfterUpdate()
T = CDbl(TextBox1) - Int(CDbl(TextBox1))
TextBox1 = Int(CDbl(TextBox1)) & Mid(T, 2, 3)
End Sub


isabelle


Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys




Avatar
isabelle
ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle


Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys




Avatar
Denys
Bonjour Isabelle,

Merci beaucoup, cependant, cela n'empêche pas la personne d'écrire 32.567
dans le textbox, ce dont je voulais éviter.....

Peut-être serait-il plus simple de créer 2 textbox, soit 1 pour le montant
en dollars, et l'autre pour les cents.....

Bonne journée

Denys


ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle


Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys







Avatar
anonymousA
bonjour,
en supposant que ton textbox s'appelle textbox1. Par ailleurs, ne gère
pas l'eventualité d'un nombre frappé par l'utilisateur et qui n'en
serait pas un.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error Resume Next
If Left(Right(Me.TextBox1.Text, 3), 1) = "." Then KeyAscii = 0

End Sub

A+


Bonjour Isabelle,

Merci beaucoup, cependant, cela n'empêche pas la personne d'écrire 32.567
dans le textbox, ce dont je voulais éviter.....

Peut-être serait-il plus simple de créer 2 textbox, soit 1 pour le montant
en dollars, et l'autre pour les cents.....

Bonne journée

Denys



ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle



Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys









Avatar
Denys
Bonjour AnonymousA,

Merci infiniment !!!!!!!!!!!!!!!!!!!

C'est excatement ce dont j'avais besoin......

Voici ton code plus un petit quelque chose qui empêche autre chose qu'un
chiffre soit tapé...

Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
On Error Resume Next
If KeyAscii < 46 Or KeyAscii > 57 Then
KeyAscii = 0
End If
If Left(Right(Me.TextBox9.Text, 3), 1) = "." Then KeyAscii = 0
End Sub

Bonne fin de semaine

Denys



bonjour,
en supposant que ton textbox s'appelle textbox1. Par ailleurs, ne gère
pas l'eventualité d'un nombre frappé par l'utilisateur et qui n'en
serait pas un.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error Resume Next
If Left(Right(Me.TextBox1.Text, 3), 1) = "." Then KeyAscii = 0

End Sub

A+


Bonjour Isabelle,

Merci beaucoup, cependant, cela n'empêche pas la personne d'écrire 32.567
dans le textbox, ce dont je voulais éviter.....

Peut-être serait-il plus simple de créer 2 textbox, soit 1 pour le montant
en dollars, et l'autre pour les cents.....

Bonne journée

Denys



ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle



Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys












Avatar
anonymousA
re,

méfie-toi quand même , car écrire If KeyAscii < 46 Or KeyAscii > 57
n'empêche pas que la chaine de caractères constituée puisse être autre
chose qu'une valeur numérique. En effet, ce code n'empêche pas que
l'utilisateur puisse frapper p.e 0.5. ce qui n"est evidemment pas une
séquence numérique.
En l'occurence, une fois dans ton test KeyPress , il serait souhaitable
que tu utilises isnumeric(cdbl(me.textbox9.value)) pour verifier si la
chaine de caactères peut être considérée comme une valeur numérique

A+

Bonjour AnonymousA,

Merci infiniment !!!!!!!!!!!!!!!!!!!

C'est excatement ce dont j'avais besoin......

Voici ton code plus un petit quelque chose qui empêche autre chose qu'un
chiffre soit tapé...

Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
On Error Resume Next
If KeyAscii < 46 Or KeyAscii > 57 Then
KeyAscii = 0
End If
If Left(Right(Me.TextBox9.Text, 3), 1) = "." Then KeyAscii = 0
End Sub

Bonne fin de semaine

Denys




bonjour,
en supposant que ton textbox s'appelle textbox1. Par ailleurs, ne gère
pas l'eventualité d'un nombre frappé par l'utilisateur et qui n'en
serait pas un.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error Resume Next
If Left(Right(Me.TextBox1.Text, 3), 1) = "." Then KeyAscii = 0

End Sub

A+



Bonjour Isabelle,

Merci beaucoup, cependant, cela n'empêche pas la personne d'écrire 32.567
dans le textbox, ce dont je voulais éviter.....

Peut-être serait-il plus simple de créer 2 textbox, soit 1 pour le montant
en dollars, et l'autre pour les cents.....

Bonne journée

Denys




ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle




Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys













Avatar
Denys
Merci beaucoup de cette précision...

Sois sûr que je m'en souviendrai...

Denys


re,

méfie-toi quand même , car écrire If KeyAscii < 46 Or KeyAscii > 57
n'empêche pas que la chaine de caractères constituée puisse être autre
chose qu'une valeur numérique. En effet, ce code n'empêche pas que
l'utilisateur puisse frapper p.e 0.5. ce qui n"est evidemment pas une
séquence numérique.
En l'occurence, une fois dans ton test KeyPress , il serait souhaitable
que tu utilises isnumeric(cdbl(me.textbox9.value)) pour verifier si la
chaine de caactères peut être considérée comme une valeur numérique

A+

Bonjour AnonymousA,

Merci infiniment !!!!!!!!!!!!!!!!!!!

C'est excatement ce dont j'avais besoin......

Voici ton code plus un petit quelque chose qui empêche autre chose qu'un
chiffre soit tapé...

Private Sub TextBox9_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
On Error Resume Next
If KeyAscii < 46 Or KeyAscii > 57 Then
KeyAscii = 0
End If
If Left(Right(Me.TextBox9.Text, 3), 1) = "." Then KeyAscii = 0
End Sub

Bonne fin de semaine

Denys




bonjour,
en supposant que ton textbox s'appelle textbox1. Par ailleurs, ne gère
pas l'eventualité d'un nombre frappé par l'utilisateur et qui n'en
serait pas un.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

On Error Resume Next
If Left(Right(Me.TextBox1.Text, 3), 1) = "." Then KeyAscii = 0

End Sub

A+



Bonjour Isabelle,

Merci beaucoup, cependant, cela n'empêche pas la personne d'écrire 32.567
dans le textbox, ce dont je voulais éviter.....

Peut-être serait-il plus simple de créer 2 textbox, soit 1 pour le montant
en dollars, et l'autre pour les cents.....

Bonne journée

Denys




ou bien plus simplement,

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "0.00")
End Sub

isabelle




Bonjour à tous,

Je reformule un peu une question que j'avais posée et dont je n'ai pas
obtenu de réponse....

Je voudrais limiter l'usager à un maximun de 2 décimales dans un textbox.
Alors, est-il possible de dire à Excel que si l'usager inscrit . alors le
nombre maximum de caractères qu'il pourra inscrire par la suite sera de 2....

Peut-être est-ce plus clair ainsi...

Merci

Denys