Plusieurs touches bug

Résolu
Utilisateur anonyme - 25 oct. 2010 à 01:38
 Utilisateur anonyme - 25 oct. 2010 à 15:33
Bonjour,
je suis en trin de faire une application et j'ai un probleme.

j'ai fait ce code:

If KeyCode = vbKeyE And Shape6.Top >= 5160 Then 'si touche appuyez et note jaune dans le cadre
Shape6.Top = 1200 'on remet au depart
Timer2.Enabled = False 'arret de timer
Call Command5_Click 'on met des points
Else'si pas bon alors
Shape6.Top = 1200 'on remet au depart
Timer2.Enabled = False 'arret de timer
Call Command6_Click 'on enleve des points
End If

If KeyCode = vbKeyR And Shape8.Top >= 5160 Then 'si touche appuyez et note verte dans le cadre
Shape8.Top = 1200 'on remet au depart
Timer4.Enabled = False 'arret de timer
Call Command5_Click 'on met des points
Else'si pas bon alors
Shape8.Top = 1200 'on remet au depart
Timer4.Enabled = False 'arret de timer
Call Command6_Click 'on enleve des points
End If


Le problème c'est que même si j'appuie sur la touche R il active comme si j'appuie sur la touche R et E ainsi que les command5 et 6. De quoi cela pourrai venir? J'essaye plusieurs solutions mais aucune marche...

Sinon il y a une autre solution mais je sais pas comment proceder.
Si le shape8 est au dessu du shape7 alors c'est ok. Car shape8.top me bloque un peu...

Merci

5 réponses

Utilisateur anonyme
25 oct. 2010 à 15:23
finalement ça marche,
j'ai recommencer avec les if et j'ai placer des elseif si la valeur n'était pas respectée. Un peu plus long mais bon ça marche

merci jack
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 oct. 2010 à 15:24
Oui, mais je te le répète, le premier Else sera exécuté si ce n'est pas la touche E, mais pas forcément la touche R.
D'ailleurs, si tu presses R, le premier Else va lancer Command6 puis, dans le 2ème test, lancera Command5.

Ton Select Case et les Case qui l'accompagnent ne sont pas corrects - regarde l'exemple de l'aide avant de poster ici, merci :
Select Case maVariable
    Case "toto"
    Case "kiki"
    Case Else
End Select

Dans ton cas, il ne faut pas faire 2 test, mais un seul :
Select Case KeyCode
    Case vbKeyE
    Case vbKeyR
    Case Else
End Select

Pour continuer dans tes conditions, tu peux imbriquer un Select Case dans un autre Select Case :
Select Case KeyCode
    Case vbKeyE
        Select Case Shape6.Top
            Case > 5160
            Case Else
        End Select
    Case vbKeyR
    Case Else
End Select
etc

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
25 oct. 2010 à 08:43
Salut

Oui, c'est normal.
Tu fais un test "If A And B Then" puis tu mets un Else.
Le Else s'exécutera donc si ce test n'est pas correct, donc pour n'importe quelle autre lettre.

Découpe ton If en plusieurs niveaux (à la place du And) ou bien utilise Select Case : Voir dans l'aide

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Utilisateur anonyme
25 oct. 2010 à 14:20
merci pour ton aide jack
ça marche pas entièrement... ça execute que le command5 qui rajoute les points meme si les conditions sont fausse et qu'il devrai m'enlever des points...

Voici le code que j'ai mis:

Select Case KeyCode = vbKeyE
Case Shape6.Top >= 5160 'si touche appuyez et note jaune dans le cadre
Shape6.Top = 1200 'on remet au depart
Timer2.Enabled = False 'arret de timer
Call Command5_Click
Case Else
Shape6.Top = 1200 'on remet au depart
Timer2.Enabled = False 'arret de timer
Call Command6_Click
End Select

Select Case KeyCode = vbKeyR
Case Shape8.Top >= 5160 'si touche appuyez et note verte dans le cadre
Shape8.Top = 1200 'on remet au depart
Timer4.Enabled = False 'arret de timer
Call Command5_Click
Case Else
Shape8.Top = 1200 'on remet au depart
Timer4.Enabled = False 'arret de timer
Call Command6_Click
End Select


et de plus il continue à me dire que la touche E et R sont presser en meme temps...
0

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

Posez votre question
Utilisateur anonyme
25 oct. 2010 à 15:33
Exact, je l'avais pas compris comme cela dans l'aide. J'en prend note pour les prochaines fois.
Désolé, merci pour ton aide
0
Rejoignez-nous