pb saisie textbox sur clavier numérique

mikeo

XLDnaute Occasionnel
Bonjour le forum,

J'ai un petit souci sur mes textbox. Si je saisis un nombre décimal sur le clavier numérique, il envoie une erreur. Apparamment, VBA n'aime pas le point (.) du clavier numérique. Par contre, la virgule (,) du clavier alphanumérique est acceptée.

Comment dois-je faire pour contourner ce problème ?
 

Pièces jointes

  • textbox.xls
    23 KB · Affichages: 117
  • textbox.xls
    23 KB · Affichages: 128
  • textbox.xls
    23 KB · Affichages: 134

Pierrot93

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonsoir à tous,

un éssai, avec calcul sur 2 taux de TVA possibles, textbox utilisant un format personnalisé, gère le nombre de décimales et le nombre de séparateurs... A voir sans doute reste t-il quelques bogues...

bonne soirée
@+
 

Pièces jointes

  • classeur2.zip
    12.5 KB · Affichages: 49
  • classeur2.zip
    12.5 KB · Affichages: 55
  • classeur2.zip
    12.5 KB · Affichages: 53

Fo_rum

XLDnaute Accro
Re : pb saisie textbox sur clavier numérique

Bonsoir,

pour utiliser au maximum le Module de Classe : après "j'appuie" : "je relâche".

*dans la version précédente, on pouvait gérer le changement de valeurs sans le Module de Classe (en le gardant pour la gestion du numérique) comme Pierrot93 le propose.
 

Pièces jointes

  • UsF TextesNumériques.xls
    36.5 KB · Affichages: 68

YANN-56

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonsoir Pierrot, et à ceux qui passeront par là,

Merci d'être intervenu, c'est sympa. Mais il y a effectivement quelques soucis:

1) L'impossibilité de saisir un point ou une virgule,
2) Il n'y a pas d'actualisation immédiate après modification du taux de T.V.A.
3) Quand tu entres un T.T.C., le montant de la T.V.A. est étrange.

Hum! J'y vais à pas feutrés, car je sais de combien est ta compétence en VBA.
Mais il fait aussi partie de la politesse de signaler ce qui ne fonctionne pas.... Pas vrai?

Aussi, comme tu l'as dit, il pouvait y avoir qq bugs pour ne pas être allé plus loin.
(Ce qui ne va pas m'empêcher de tirer enseignement de ta façon d'écrire..... Comme d'hab.!)

Il est à noter que je ne suis entré dans la discussion que pour aider son auteur.
Grand bien m'en a prit; car finalement c'est moi qui ait beaucoup appris.

Quant à lui, comme malheureusement de plus en plus ici, Pfouiittt...... Plus personne. C'est désolant!

Je joins la dernière modification à mon Classeur initial bénéficiant des apports reçus ici, et de mes gamberges.

De mon coté, cela me satisfait totalement.

Il pourrait rester le challenge de faire plus simple, plus court, avec codes plus lisibles ....
voire une boite de dialogue plus conviviale.

La question initiale semblait anodine; mais finalement .... Quel plaisir!

Amicalement,

Yann

P.S....... Pardon Fo_Rum, je ne t'avais pas vu. Je regarde ton idée.... A plus tard:)
 

Pièces jointes

  • TAXES_06_06_11.xls
    86.5 KB · Affichages: 55
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonsoir, donc Fo_rum,

Diantre combien il y a-t-il à apprendre pour ma pomme en lisant ton exemple!

Mais tu m'énerves en ayant débaptisé "GROUPE_DE_TEXTBOXES" par "TxT" ... Pourquoi? T'aimes pas?

"Currency" et "CCur" . Je vais étudier.

Je vais aussi regarder de très près ton code:

Code:
Private Sub TxT_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii < 46 Or KeyAscii > 57 Or KeyAscii = 47 Then KeyAscii = 0
    If (KeyAscii = 46 And TxT Like ("*,*")) Then KeyAscii = 0
    If TxT <> "" Then
        If Int(TxT * 10) <> TxT * 10 Then KeyAscii = 0
    End If
End Sub

Il y a un "Like" que je like bien. (Comme le reste aussi)

Merci à toi pour ton aide,

Amicalement,

Yann
 

Pierrot93

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonjour à tous
Yann:), merci pour tes tests...
1) L'impossibilité de saisir un point ou une virgule,
chez moi pas de souci, saisie possible d'un seul point (le point est également mon séparateur de décimale).. si saisie d'une virgule celle-ci est bien remplacée par un point... inverse peut être ce test :
Code:
If KeyAscii = 44 Then KeyAscii = 46 '44 = virgule, 46 = point

2) Il n'y a pas d'actualisation immédiate après modification du taux de T.V.A.
oui tout à fait... mais sur quel montant se baser dans ce cas si les textbox sont renseignées... A voir...

3) Quand tu entres un T.T.C., le montant de la T.V.A. est étrange.

bien vu.. grossière horreur de ma part:) doit en rester d'autres:)..
modifier l'événement change du textbox3 comme suit :
Code:
Private Sub TextBox3_Change()
If b Then Exit Sub
b = True
If TextBox3 = "" Then TextBox1 = "": TextBox2 = "": b = False: Exit Sub
TextBox1 = Format(CDbl(TextBox3) / IIf(OptionButton1, 1.196, 1.055), "# ##0.00 €")
TextBox2 = Format((CDbl(TextBox3) / IIf(OptionButton1, 119.6, 105.5)) * _
    (IIf(OptionButton1, 19.6, 5.5)), "# ##0.00 €")
b = False
End Sub

bonne journée
@+
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Re,

pour recalculer si le taux de TVA modifié, peut être tout simplement ceci, en se basant sur le montant HT...
Code:
Private Sub OptionButton1_Click()
TextBox1_Change
End Sub
Private Sub OptionButton2_Click()
TextBox1_Change
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

bonjour les amis :):):):):)
je vais être têtu comme l'ami YANN:):):)
c'est vrai que l'on est sorti de la question initial:confused:
comme le dit l'ami pierrot:):) on peu ce passer d'un module de classe sans souci dans ce cas seulement 3 textboxs
avec 10 textboxs je crois qu'on pourra pas sans passer sans multiplier les lignes de code
c'etait dans cette esprit la ma reflexion . puis de simplifier a l'extreme pas de variable public si on vide la cellule on rend la main au autre textboxs ect..comme dit plus haut
une ultime derniere réponse
 

Pièces jointes

  • taxe3.zip
    20.6 KB · Affichages: 50

YANN-56

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonjour Pierrot, Laetitia, et à ceux qui passeront par ici,

En premier je vous remercie pour votre patience et votre science.

Pierrot:
Rien y fait! Chez moi, les points et les virgules restent sous le tapis???

Par contre tu me convaincs d'utiliser les boutons d'option plutôt que le label de T.V.A. avec les flèches.
Ca fait joli, mais cela peut être déroutant pour l'utilisateur.

Laetitia:
je vais être têtu comme l'ami YANN

En tant que Breton, je ne puis l'être autrement! Mais obstiné: Non!!!

Comme je l'ai déjà dit; je me suis bien régalé.
Mais je dois avouer qu'une cuillérée de plus aurait du mal à passer... Je sature. "Hip"! Pardon!

Je pense qu'un XLDNaute cherchant solution à:
pb saisie textbox sur clavier numérique
trouvera bon biais dans ce fil; et c'est tout gagné.:):):)

Pour les adeptes des Formules Excel: Un exercice en cadeau. :confused:
(Conditions, arrondis, protections...Et c... à vos crayons; vous avez ¼ d'heure...)

Quant à moi je me sauve. Ch'sais pas faire. Et ne le cherche pas non plus.

Au plaisir de vous croiser à nouveau sur autres Fils,

Yann
 

Pièces jointes

  • TVA.xls
    14.5 KB · Affichages: 74
  • TVA.xls
    14.5 KB · Affichages: 73
  • TVA.xls
    14.5 KB · Affichages: 67
  • YANN Se marre.jpg
    YANN Se marre.jpg
    32.1 KB · Affichages: 100
  • YANN Se marre.jpg
    YANN Se marre.jpg
    32.1 KB · Affichages: 107
  • YANN Se marre.jpg
    YANN Se marre.jpg
    32.1 KB · Affichages: 105

Pierrot93

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonsoir toutes et tous
Yann:), je supose que tu as bien modifié les 3 lignes présentes dans le code comme celle-ci en remplacant le point par le séparateur décimale que tu utilises...
Code:
If InStr(s, ".") > 0 Then If Len(s) - InStr(s, ".") > 2 Then KeyAscii = 0

bonne soirée
@+
 

YANN-56

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Bonjour Pierrot, et à ceux qui passeront par là,

Je reconnais dans ton obsession du bon résultat de ton aide:....Ta gentillesse.:)

Mais comme je l'ai dit ci-dessus je n'en puis plus avec ce truc!

Le Classeur modifié que je joins est stocké dans mes archives VBA dans le cas où
je puisse en avoir besoin.

C'est un Melting pot avec mes bidouilles et les aides reçues.

Je garde aussi le lien pour étudier plus profondément ta façon de faire.

Merci encore, et au Plaisir,

Yann
 

Pièces jointes

  • TAXES_08_06.xls
    76.5 KB · Affichages: 66
  • TAXES_08_06.xls
    76.5 KB · Affichages: 72
  • TAXES_08_06.xls
    76.5 KB · Affichages: 72

Pierrot93

XLDnaute Barbatruc
Re : pb saisie textbox sur clavier numérique

Re,
Yann:)
euh, sauf erreur je ne vois pas le code que j'ai donné dans ton classeur.... essaye le classseur que j'avais joins en tenant compte des différentes modifs que je proposais...

bonne soirée
@+
 

klin89

XLDnaute Accro
Re : pb saisie textbox sur clavier numérique

Bonsoir à tous,
Bonsoir Yann

Pour le fun, j'ai rajouté ceci dans le code de de l'userform sur la Textbox1 : (fichier du post #40#)

VB:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
 If TextBox1.Value <> "" Then
   TextBox1.Value = Format(CDbl(TextBox1), "###0.00")
 Else
   TextBox1.Value = ""
   TextBox2.Value = ""
   TextBox3.Value = ""
 End If
End Sub
Ainsi, si tu saisis 12 et tu valides, s'affichera 12,00
Tu saisis 12, s'affichera 12,00
Tu saisis 12,1 s'affichera 12,10
Tu saisis 12,11 s'affichera 12,11

Bonne soirée à tous
Klin89
 

Discussions similaires

Réponses
7
Affichages
2 K
Réponses
64
Affichages
6 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87