Boucle sautée
sydny
-
Odenelle Messages postés 108 Statut Membre -
Odenelle Messages postés 108 Statut Membre -
Bonjour,
voila, cela fait maintenant plusieurs heures que je suis bloqué avec un problème de boucle qui ne "s'active" pas, j'ai regarder un peu partout sur internet pour me dépanner, mais je n'ai rien trouver. je vais donc mettre le code afin de vous expliquer ensuite mon problème:
Option Explicit
Private Sub CB_calcul_du_match_Click()
Dim J1 As Integer
Dim J2 As Integer
Dim P1 As Integer
Dim P2 As Integer
P1 = 0
P2 = 0
TB_J1P = 0
TB_J2P = 0
J1 = Rnd() * TB_joueur1
J1 = Round(J1, 0)
J2 = Rnd() * TB_joueur2
J2 = Round(J2, 0)
While 4 > TB_J1P And TB_J2P
If J2 < J1 Then
TB_J1P.Value = P1 + 1
Else
TB_J2P.Value = 1 + P2
End If
Wend
End Sub
d'abord le contexte:
je veus faire un programme qui calcul de manière aléatoire et en direct les resultats d'un match de tennis avec un taux de chance de marquer des points pour les deux joueurs définis par l'utilisateur. exemple: joueur1:7, joueur2: 4.
à chaque calcul, joueur 1 et 2 auront un "score" aléatoire compris entre 0 et 7(1) et 0 et 4(2), et celui qui aura la valeur la plus grande, marque un point.
je pose les résultats directement sur une userform.
maintenant le probleme:
il s'agit de la fonction while, lorsque je passe le programme avec F8 j'ai constaté que je passe directement le la ligne while à la ligne end sub. Lorsque je lance la macro, TB_J1P et TB_J2P(les noms des textbox acceuillant les scores) sont toujours à 0.
merci d'avance, en esperant que vous puissiez m'aider à résoudre ce problème.
voila, cela fait maintenant plusieurs heures que je suis bloqué avec un problème de boucle qui ne "s'active" pas, j'ai regarder un peu partout sur internet pour me dépanner, mais je n'ai rien trouver. je vais donc mettre le code afin de vous expliquer ensuite mon problème:
Option Explicit
Private Sub CB_calcul_du_match_Click()
Dim J1 As Integer
Dim J2 As Integer
Dim P1 As Integer
Dim P2 As Integer
P1 = 0
P2 = 0
TB_J1P = 0
TB_J2P = 0
J1 = Rnd() * TB_joueur1
J1 = Round(J1, 0)
J2 = Rnd() * TB_joueur2
J2 = Round(J2, 0)
While 4 > TB_J1P And TB_J2P
If J2 < J1 Then
TB_J1P.Value = P1 + 1
Else
TB_J2P.Value = 1 + P2
End If
Wend
End Sub
d'abord le contexte:
je veus faire un programme qui calcul de manière aléatoire et en direct les resultats d'un match de tennis avec un taux de chance de marquer des points pour les deux joueurs définis par l'utilisateur. exemple: joueur1:7, joueur2: 4.
à chaque calcul, joueur 1 et 2 auront un "score" aléatoire compris entre 0 et 7(1) et 0 et 4(2), et celui qui aura la valeur la plus grande, marque un point.
je pose les résultats directement sur une userform.
maintenant le probleme:
il s'agit de la fonction while, lorsque je passe le programme avec F8 j'ai constaté que je passe directement le la ligne while à la ligne end sub. Lorsque je lance la macro, TB_J1P et TB_J2P(les noms des textbox acceuillant les scores) sont toujours à 0.
merci d'avance, en esperant que vous puissiez m'aider à résoudre ce problème.
A voir également:
- Boucle sautée
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Pc qui s'allume et s'éteint en boucle - Forum Virus
2 réponses
Salut,
=> Rnd() te renvoie une valeur entre 0 et 1, je ne connais pas la valeur de ton TB_joueur1 mais ensuite tu arrondi le produit à l'unité, c'est bien ce que tu veux faire ?
=> Ici tu dois écrire
Si tu peux mettre ton code entre balises code et expliquer à quoi correspondent chacune de tes variables quand tu les utilise, je pense qu'on pourra t'aider
J1 = Rnd() * TB_joueur1
J1 = Round(J1, 0)
=> Rnd() te renvoie une valeur entre 0 et 1, je ne connais pas la valeur de ton TB_joueur1 mais ensuite tu arrondi le produit à l'unité, c'est bien ce que tu veux faire ?
While 4 > TB_J1P And TB_J2P
=> Ici tu dois écrire
While 4 > TB_J1P And 4 > TB_J2P
Si tu peux mettre ton code entre balises code et expliquer à quoi correspondent chacune de tes variables quand tu les utilise, je pense qu'on pourra t'aider
Private Sub CB_calcul_du_match_Click()
Dim J1 As Integer
Dim J2 As Integer
Dim P1 As Integer
Dim P2 As Integer
P1 = 0
P2 = 0
J1 = Rnd() * TB_joueur1 'joueur1 valeure donnée par l'utilisateur exemple:7, la valeure sera comprise entre 0 et 7'
J1 = Round(J1, 0) 'arrondi à l'unité'
J2 = Rnd() * TB_joueur2 'idem à joueur1'
J2 = Round(J2, 0)
While 4 > P1 And P2 'ici, le programme passe directement à end sub sans faire les étapes intermédiaires'
If J2 < J1 Then
P1 = P1 + 1
Else
P2 = 1 + P2
End If
TB_J1P = P1
TB_J2P = P2
Wend
End Sub 'ps: j'ai continuer à essayer différentes choses donc mon programme à légèrement changer, mais le résultat est toujours pareil, je sais pas comment faire'
voila, j'ai posé quelques balises.
j'ai oublié de préciser à a presentation du sujet mais je suis sur le pack office 2003.
Dim J1 As Integer
Dim J2 As Integer
Dim P1 As Integer
Dim P2 As Integer
P1 = 0
P2 = 0
J1 = Rnd() * TB_joueur1 'joueur1 valeure donnée par l'utilisateur exemple:7, la valeure sera comprise entre 0 et 7'
J1 = Round(J1, 0) 'arrondi à l'unité'
J2 = Rnd() * TB_joueur2 'idem à joueur1'
J2 = Round(J2, 0)
While 4 > P1 And P2 'ici, le programme passe directement à end sub sans faire les étapes intermédiaires'
If J2 < J1 Then
P1 = P1 + 1
Else
P2 = 1 + P2
End If
TB_J1P = P1
TB_J2P = P2
Wend
End Sub 'ps: j'ai continuer à essayer différentes choses donc mon programme à légèrement changer, mais le résultat est toujours pareil, je sais pas comment faire'
voila, j'ai posé quelques balises.
j'ai oublié de préciser à a presentation du sujet mais je suis sur le pack office 2003.