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

mohalesage -  
mohalesage Messages postés 162 Statut Membre -
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

  1. JwTdd
     
    Bonjour, peut-être avec If Not IsNumeric(text1.text)
    0
  2. mohalesage Messages postés 162 Statut Membre 1
     
    Bonjour l'Ami,

    ça n'a rien donné.
    Merci quand même
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  4. mohalesage Messages postés 162 Statut Membre 1
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. mohalesage Messages postés 162 Statut Membre 1
     
    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
  8. mohalesage Messages postés 162 Statut Membre 1
     
    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
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  10. mohalesage Messages postés 162 Statut Membre 1
     
    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
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  12. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  13. mohalesage Messages postés 162 Statut Membre 1
     
    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