toutoune95800
Messages postés5Date d'inscriptionmercredi 17 novembre 2010StatutMembreDernière intervention28 avril 2012
-
28 avril 2012 à 15:37
toutoune95800
Messages postés5Date d'inscriptionmercredi 17 novembre 2010StatutMembreDernière intervention28 avril 2012
-
28 avril 2012 à 18:53
Bonjour, je vous présente ci-dessous mon code qui teste si les valeurs entrées sont numériques. Si ce n'est pas le cas, alors on retourne au début.
Je tenais à vous préciser que j'ai un peu de mal à comprendre le principe des boucle ! Ici, si ma variable valid1 est vrai alors on continue le code sinon, message d'erreur et on recommence :
Do
If IsNumeric(Vjours) And IsNumeric(Vmois) And IsNumeric(Vannees) And IsNumeric(Vheures) And IsNumeric(Vminutes) Then
valid1 = True
Vannees = CInt(Vannees)
Vmois = CInt(Vmois)
Vjours = CInt(Vjours)
Vheures = CInt(Vheures)
Vminutes = CInt(Vminutes)
box_jours.Text = ""
box_annees.Text = ""
box_mois.Text = ""
box_heures.Text = ""
box_minutes.Text = ""
Else
MsgBox "Merci de saisir un chiffre correct", vbOKOnly + vbExclamation, "Erreur"
box_jours.Text = ""
box_annees.Text = ""
box_mois.Text = ""
box_heures.Text = ""
box_minutes.Text = ""
End If
Loop While valid1 = False
Je suis très très satisfait d'avoir crée une boucle infinie qui plante tout mon programme ! En revanche, ce que j'aimerais, c'est comprendre POURQUOI elle est infinie ! ! !
Comment puis-je faire pour que si l'utilisateur met un caractère au lieu d'un chiffre, alors tout se remet à zero et il doit refaire sa saisie ?
Merci d'avance pour vos réponses... J'aimerais tant de comprendre le principe des boucles ! ! ! !
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 28 avril 2012 à 15:46
Bonjour,
parce qu'il sduffit que ta toute première condition ne soit pas vérifiée pour que le else intervienne, mettre tout à "" et que, donc et ainsi, la première condition ne soit jamais plus vérifiée .
Tu es là face à une simple question de logique !
Un indice : tu n'as absolument pas besoin d'une boucle, dans le cas que tu exposes, mais d'une simple expression conditionnelle toute bête !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
toutoune95800
Messages postés5Date d'inscriptionmercredi 17 novembre 2010StatutMembreDernière intervention28 avril 2012 28 avril 2012 à 16:01
Merci pour vos explications Ufoutu ! J'avais effectivement fais une boucle conditionnelle mais il est pour moi très important de maîtriser les variables, car, je ne sais pas si vous vous en souvenez, mais j'avais posé une question sur la soustraction d'heure à laquelle vous m'aviez répondu et après avoir réviser mes cours de CP, j'ai donc trouver la solution !
Seulement, quand tout sera tapé, il faudra que le décompte se fasse seconde par seconde indéfiniement jusqu'à l'arrêt de programme ou jusqu'à ce que l'utilisateur clique sur un bouton "RESET" ! Voilà pourquoi, je me défie les boucles qui sont vraiment ma bête noire en programmation ! En tout cas merci beaucoup pour votre aide
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 28 avril 2012 à 17:48
Je n'ai toujours pas compris ! ! ! Où dois-je placer le Do ? ? ?
Nulle part !
Un indice : tu n'as absolument pas besoin d'une boucle, dans le cas que tu exposes, mais d'une simple expression conditionnelle toute bête
Veut dire ce que ça veut dire : pas de boucle du tout.
Et ne vois mal ce qu'une boucle pourrait bien faire là-dedans !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Vous n’avez pas trouvé la réponse que vous recherchez ?
toutoune95800
Messages postés5Date d'inscriptionmercredi 17 novembre 2010StatutMembreDernière intervention28 avril 2012 28 avril 2012 à 18:53
J'ai enfin réussi ! J'ai effectivement utilisé une boucle conditionnelle et tout fonctionne parfaitement. En cas de valeur fausse, un message puis un exit sub a fait l'affaire ! ! !
En tout cas, merci beaucoup ! ! !
Mais à mon avis, je pense que je reviendrais... Car il va falloir que je crée une boucle qui indéfiniment fait mon calcul pour obtenir un décompte et un compte à rebours !