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

Macros et VBA Excel Discussion :

verification en vb6


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut verification en vb6
    Bonjour,

    Je suis en train de réaliser un projet sous vb 6. Il consiste à interroger les verbes irréguliers en anglais suivant le contenu d'une feuille de données de type excel.Il sélectionne une forme aléatoirement et l'affiche. Tout fonctionne à ceci près :
    Lorsque je vérifie afin de savoir si ma réponse est juste, le résultat est toujours faux même si c'est la bonne réponse. Je cherche désespérément la solution sans réponses. J'ai déjà mis des msgbox un peu partout afin de savoir si ce que j'entrai était bien pris en compte et ce que je devrai écrire afin que la réponse soit vrai cela dit cela ne change rien!!!!!
    Votre aide est la bienvenue
    Voici le
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    'on test pour savoir si le contenu de la cellule est bon'
    'si c la forme afficher alors'
    If l_bv1.Visible = True Then
    'on affiche rien '
    l_bv2.Caption = ""
    'sinon si le contenu d'inscrit est le même que celui de la base de donné'
    ElseIf ActiveCell.Value = t_bv.Text Then
    MsgBox ActiveCell.Value
    'on affiche juste'
    l_bv2.Caption = "Juste"
    Else
    MsgBox ActiveCell.Value
    'sinon on affiche faux'
    l_bv2.Caption = "Faux"
    End If
     
    'deplace le curseur d'une case'
    ActiveCell.Offset(0, 1).Select
     
    'on test pour savoir si le contenu de la cellule est bon'
    'si c la forme afficher alors'
    If l_preterit1.Visible = True Then
    'on affiche rien '
    l_preterit2.Caption = ""
    'sinon si le contenu d'inscrit est le même que celui de la base de donné'
    ElseIf t_preterit.Text = ActiveCell.Value Then
    l_preterit2.Caption = "Juste"
    Else
    'sinon on affiche faux'
    l_preterit2.Caption = "Faux"
    End If
     
    'deplace le curseur d'une case '
    ActiveCell.Offset(0, 1).Select
     
    'on test pour savoir si le contenu de la cellule est bon'
    'si c la forme afficher alors'
    If l_pp1.Visible = True Then
    'on affiche rien '
    l_pp2.Caption = ""
    'sinon si le contenu d'inscrit est le même que celui de la base de donné'
    ElseIf t_pp.Text = ActiveCell.Value Then
    'on affiche juste '
    l_pp2.Caption = "Juste"
    Else
    'sinon on affiche faux'
    l_pp2.Caption = "Faux"
    End If
     
    'deplace le curseur d'une case '
    ActiveCell.Offset(0, 1).Select
     
    'on test pour savoir si le contenu de la cellule est bon'
    'si c la forme afficher alors'
    If l_traduc.Visible = True Then
    'on affiche rien '
    l_traduc2.Caption = ""
    'sinon si le contenu d'inscrit est le même que celui de la base de donné'
    ElseIf t_traduction.Text = ActiveCell.Value Then
    'sinon on affiche juste'
    l_traduc2.Caption = "Juste"
    Else
    'sinon on affiche faux'
    l_traduc2.Caption = "Faux"
    End If
     
    'retourne le curseur au debut de la colonne'
    ActiveCell.Offset(0, -3).Select
     
    'si les 3 formes inscrites sont justes alors'
    If (l_bv2.Caption = "Juste" Or l_preterit2.Caption = "Juste" Or l_pp2.Caption = "Juste" Or l_traduc2.Caption = "Juste") Then
    'on a 1 point'
    Resultat = Resultat + 1
    l_resultat.Caption = Resultat
    Else
    'sinon on a 0 point'
    Resultat = Resultat + 0
    l_resultat.Caption = Resultat
    End If
     
    End If
     
    End Sub

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 127
    Par défaut
    Salut et bienvenu
    Pas facile de répondre, il faudrait pouvoir faire des breack sur ton code afin d'examiner correctement les 2 chaines de texte comparées.

    Par contre ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (l_bv2.Caption = "Juste" Or l_preterit2.Caption = "Juste" Or l_pp2.Caption = "Juste" Or l_traduc2.Caption = "Juste") Then
    a mon avis il te faut mettre des And a la place des Or, car en l'écrivant ainsi si une seule des formes au moins et juste tu obtiens un point (meme si plusieurs autres sont fausses).

    Pour en revenir a ton soucis principale, il te faut utiliser le mode de débugage en mettant un point d'arrêt sur tes lignes contenant les testes d'egalité, ensuite tu selectionnes ton egalité pour voir le resultat, si celui ci est indiqué "faux", il te faut alors bien observer les 2 chaînes pour trouver ce qui cloche.

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    3 remarques :

    - ActiveCell.Value ce code est dangereux car on ne maitrise pas toujours quelle est la cellule active

    - Des espaces dans une chaine de caractère ou des caractéres spéciaux peuvent provoquer une inégalité.

    - Dans ton code tu testes une égalité stricte, donc des majuscules donneront un résultat différent, regardes l'option COMPARE dans l'aide en ligne

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour tous,
    Tu pourrais aussi essayer avec...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf Ucase(ActiveCell.Value) = Ucase(t_bv.Text) Then
    A+

Discussions similaires

  1. [VB6] Ignorer une verification
    Par Spiritkiller dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 07/05/2006, 22h12
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

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