Traîter 0 (Zéro) comme un chiffre

Fermé
mohalesage - 18 mai 2013 à 23:16
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 - 21 mai 2013 à 00:51
Bonjour l'Ami,

Je me suis heurté un problème inattendu. Quand je demande à l'application de m'envoyer le message ( Cette zone est réservée aux chiffres ) chaque fois que je saisie une lettre dans un textbox en écrivant le code suivant

if text1.text = 0 then
msgbox"Cette zone est réservée aux chiffres"
text1.text=""
text1.setFocus

exit sub
end if


tant que je saisie un chiffre supérieur à 0, le code s'exécute bien, si jamais je saisie le chiffre 0 ( Zéro ), l'application m'envoie le message ( Cette zone est réservée aux chiffres )

Je n'y rien compris, Merci pour votre aide




12 réponses

Bonjour, peut-être avec If Not IsNumeric(text1.text)
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
19 mai 2013 à 17:12
Bonjour l'Ami,

ça n'a rien donné.
Merci quand même
0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
19 mai 2013 à 17:57
Salut,

essaye comme cela

If Not IsNumeric(TextBox1) Then
If TextBox1 = "" Then Exit Sub
MsgBox "Cette zone est réservée aux chiffres"
TextBox1.Text = ""
End If
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
19 mai 2013 à 19:33
Salut l'Ami,

Comme je vous l'ai signalé dans ma première question. Le code écrit était

if val(Text1.Text) = 0 then
msgbox"Cette zone est réservée aux chiffres"
Text1.text=""
Text1.SetSocus
exit sub
end if


ce code donne le même resultat que celui que vous m'aviez proposé, qui est ci dessous:

If Not IsNumeric(TextBox1) Then 
If TextBox1 = "" Then Exit Sub 
MsgBox "Cette zone est réservée aux chiffres" 
TextBox1.Text = "" 
End If 



Merci pour votre tentative

A plus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
Modifié par Mike-31 le 19/05/2013 à 19:58
Re,

serait il possible de voir un bout de ton fichier sans note confidentielle que tu peux joindre avec ce lien

https://www.cjoint.com/

le code que je t'ai donné, fonctionne parfaitement pour l'avoir essayé.
Il doit y avoir autre chose qui coince

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
20 mai 2013 à 00:04
Bonjour l'Ami,

veuillez m'excuser. C'est moi qui a mal écrit le code.
J'ai réessayer avec votre proposition, et l'application
enfin reconnait le Zéro (0) comme un chiffre.

toute ma reconnaissance l'Ami

A plus
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
Modifié par mohalesage le 20/05/2013 à 00:33
Bonjour l'Ami,

J'ai une question à vous poser.
Comment pourrai je vider une zone ( Text ) en lecture seulement.

la procédure, c'est quant je valide une quelconque opération, toutes
les zones doivent être vidées.
les zone actives ( c'est dire saisissable ) se vident, les zones en lecture ne se vident pas.

Merci pour votre aide

A plus
0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
20 mai 2013 à 07:55
Re,

Il faudrait voir ton fichier pour apprécier sa structure et te donner un code adapté.

tes contrôles sont sur une userform et si je comprends ta demande, après enregistrement des données tu veux vider tous tes contrôles,
c'est cela !
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
20 mai 2013 à 13:21
Bonjour l'Ami,

C'est justement ce là. Les données sont déjà enregistrées, pour les appeler, j'ai utilisé la requête SQL, aussi :

RS.MoveFirst

lblFerme.Caption = RS![FERME]
lblCaisses.Caption = RS![NBRECAISSE]

ce que je n'arrive pas à faire jusqu'à maintenant c'est les faire diparaître comme je le fais avec les zones textbox normales


j'espère vous donner plus d'explications

A plus
0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
20 mai 2013 à 13:40
Re,

le problème est que tu as renommer tes texbox c'est peut être plus parlant pour toi mais cela complique les codes. je te conseille de leur redonner leurs noms par défaut textbox1, texbox2 etc ...
dans ce cas le code peut être très simple, tu colle la variable en début de code

Dim effac As Object

puis ce code en fin de procédure, et tous tes textbok seront vide

For Each effac In Me.Controls
If effac.Name Like "TextBox*" Then effac.Value = ""
Next
0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
20 mai 2013 à 13:55
Re,

utilise plutôt ce code qui prendra le texbox nommé

Dim effac As Object
For Each effac In Me.Controls
If TypeName(effac) = "TextBox" Then effac.Text = ""
Next

0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
21 mai 2013 à 00:51
Bonjour l'Ami,

Je crois que je n'ai pas bien expliqué le problème. Je le reconnais, mais c'était par inattention.

mes objets en question étaient :

combobox avec la propriété DropDown List
label.caption

mais quand j'ai changé la propriété de combobox à DropDown Combobox
et les label.caption aux TextBox avec la propriété Loked à True

j'ai arrivé à réussir de faire vider ces objets une fois l'opération en cours est validée. et ce par :

cmbBon =""
Tkilos=""
TNbreCses=""

Merci pour tout l'ami, avec toute ma reconnaissance

A plus
0