IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[Calcul] Bug lors d'un calcul depuis une saisie TextBox.


Sujet :

VB 6 et antérieur

  1. #1
    telodo
    Invité(e)
    Par défaut [Calcul] Bug lors d'un calcul depuis une saisie TextBox.
    Bonsoir,


    Je vous contact ce soir suite a un probleme lors d'un calcul. J'ai vraiment besoin d'aide, je sais que l'erreure ne doit pas etre complique mais je suis un parfait debutant. Et je bloque vraiment, pas faute de chercher et tester.

    Mon programme ce compose de 2 TextBox. L'utilisateur doit entrer des valeures a l'interieure de celles-ci. Lorsqu'il clique sur le bouton calculer, le programme effectue une division du TextBox1 et TextBox 2. Si l'utilisateur n'a entre aucune valeure, alors un message s'affiche pour lui signaler que le programme ne peut aps faire l'operation.

    Tous le code se situe dans le bouton "Calculer". Voici ce code facile de comprehension :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Private Sub Command14_Click()
     
    Tapis$ = Text1.Text
    Relance$ = Text2.Text
    Rien$ = ""
     
    If Tapis$ = Rien$ And Relance$ = Rien$ Then
    Label2.Caption = "Vous devez saisir la taille de votre tapis et celle de la relance !"
    Else
    Rapport$ = Tapis$ / Relance$
    End If
     
    If Rapport$ > 4 Then
    Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, AK"
    ElseIf Rapport$ < 2.5 Then
    Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, TT, 99, 88, 77, AK, AQ, AJ, KQ"
    Else
    Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, TT, AK, AQ"
    End If
     
    End Sub


    De plus, pour eviter que l'utilisateur ne s'amuse a taper des lettres dans les TextBox prevues pour des chiffres j'ai ajoute cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Text1_KeyPress(KeyAscii As Integer)
     
    If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0
     
    End Sub
     
    Private Sub Text2_KeyPress(KeyAscii As Integer)
     
    If Not Chr(KeyAscii) Like "[0123456789.]" Then KeyAscii = 0
     
    End Sub


    Lorsque l'utilisateur entre des valeurs dans TextBox1 et TextBox2, le programme fait bien ses calculs et affiche le resultat. Cependant lorsque l'utilisateur n'entre aucunes valeurs et qu'il clique sur "Calculer" , alors le resultat s'affiche mais un bug surviens "Run-Time Error 13" et le DEBBUG m'affiche en jaune la ligne "If Rapport$ > 4 Then" comme etant un probleme.



    En esperant que vous pourrez tres vite me venir en aide, je vous souhaite une agreable nuit et une bonne programmation !

    A tres bientot !
    Dernière modification par telodo ; 28/09/2007 à 13h27.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Ton test doit comparer des numériques.

    Pour tester si les deux chaines ne sont pas vide il faut un "OR".

    Tu as un troisième point à prendre en compte : Val(Relance$) doit être différent de 0.

    En plus si tu as une erreur de saisie (chaine vide ou relance=0), il ne faut pas faire la suite des calculs et des comparaisons.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Tapis$ = Text1.Text
    Relance$ = Text2.Text
    Rien$ = ""
     
    If Tapis$ = Rien$ Or Relance$ = Rien$ Then ' aucun ne doit être vide
      Label2.Caption = "Vous devez saisir la taille de votre tapis et celle de la relance !"
    Else
     If val(Relance$) <> 0 Then
      'plus d'erreur de saisie, on peut traiter les info
      'Rapport$ = Tapis$ / Relance$ ' fonctionne mais à éviter
      Rapport$ = val(Tapis$) / val(Relance$) 
      If Val(Rapport$) > 4 Then ' d'ailleur là ça ne fonctionnait plus, maintenant ok 
        Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, AK"
      ElseIf Val(Rapport$) < 2.5 Then
        Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, TT, 99, 88, 77, AK, AQ, AJ, KQ"
      Else
        Label2.Caption = "Vous devez vous mettre All-In avec : AA, KK, QQ, JJ, TT, AK, AQ"
      End If
     Else
        Label2.Caption = "La relance ne doit pas être = à 0 !"
     End If
    End If
    Tu pourrais aussi procéder autrement : tester directement tes textbox (voir si vide) et utiliser des variables numériques pour tes affectations et calculs.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    telodo
    Invité(e)
    Par défaut
    Oh ! Merci beaucoup Herve ! Maintenant tout fonctionne a merveille !

    Pour le val("x") j'avais fait des testes, mais je l'utilisais mal. Maintenant, avec le code source que vous m'avez fournis je comprends tout le sens de cette fonction. Maintenant tout est plus clair !

    Et surtout gros merci pour l'heure a laquelle j'ai eu la reponse, je pensais que je devrais attendre demain !

    Merci encore !

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/06/2014, 15h14
  2. [SP-2010] Bug lors de la création d'une connexion de synchronisation
    Par Gratiano dans le forum SharePoint
    Réponses: 6
    Dernier message: 05/02/2014, 12h47
  3. Comment attendre une saisie textbox si nécessaire ?
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/03/2013, 21h10
  4. [CR XI] Bug lors de la création d'une invite en cascade
    Par kellyMU dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 09/11/2009, 11h37
  5. Bug lors de l'utilisation d'une fonction dans une macro.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/06/2007, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo