giudy
Messages postés4Date d'inscriptiondimanche 2 mars 2008StatutMembreDernière intervention 6 octobre 2008
-
2 mars 2008 à 09:12
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
2 mars 2008 à 15:49
Salut tout le monde !
j'ai écris une fonction qui rend une note entre 0 et 20 ou l'utilisateur recommence la saisie si la note n'est pas comprise entre 0 et 20 :
Function noteSaisie(ByVal note As Double) As Double
'note entre 0 et 20
Do Until note <= 20
Application.InputBox ("Veuillez saisir une note comprise entre 0 et 20 ")
Loop
End Function
Sub testNoteSaisie()
Application.InputBox ("Veuillez saisir une note comprise entre 0 et 20 ")
End Sub
Mais ma fonction me fait ne boucle qui ne se termine pas meme si j'ai fait Loop
Qu'en dites vous ? Peut on ecrire des versions differentes avec "until" puis "while" et do....loop sans que ça tourne à l'infini ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 mars 2008 à 11:30
Bonjour,
1) je ne vois pas quelle valeur de note tu passes à ta fonction.
2) <= 20 inclus des nombres négatifs !!! ?
3) je ne vois pas où ta fonction attribue à note la valeur saisie dans ton inputbox !!!
4) je ne vois pas non plus quelle valeur retourne ta fonction (tu ne lui en attribue aucune. or, une fonction est faite pour retourner la valeur qu'elle prend ...)
5) tu ne me parais pas développer sous VB6 mais sous VBA (et tu es iciç dans la section VB6) ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 mars 2008 à 11:42
Voilà un exemple avec utilisation (bien inutile dans un tel cas à mon sens, mais bon ...) de fonction et avec boucle dans la fonction.
Private Sub Command1_Click()
MsgBox "vous avez saisi " & noteSaisie()
End Sub
Private Function noteSaisie() As Double
noteSaisie = -1
Do Until noteSaisie <= 20 And noteSaisie >= 0
noteSaisie = Val(InputBox("Veuillez saisir une note comprise entre 0 et 20 "))
Loop
End Function
Adapte au besoin pour VBA (avec ton "Application.machin")
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 mars 2008 à 11:46
Ah oui...
Et lis dans ton aide en ligne à quoi peut servir Isnumeric, puis utilise-le, afin d'éviter que l'utilisateur frappe une lettre par erreur et que la note soit alors 0 ou qu'il frappe "1blabla" et que la note soit 1 !!!
giudy
Messages postés4Date d'inscriptiondimanche 2 mars 2008StatutMembreDernière intervention 6 octobre 2008 2 mars 2008 à 12:25
bonjour !
1) est ce qu'avec une boucle while ça ressemblerais à ça ?
Private Function noteSaisie3() As Double
noteSaisie3 = -1
Do
noteSaisie3 = Val(InputBox("Veuillez saisir une note comprise entre 0 et 20 "))
Loop While noteSaisie3 <> 20 And noteSaisie3 <> 0
End Function
Private Sub Command1_Click3()
MsgBox "Votre note a été saisie avec succès !" & noteSaisie3()
End Sub
2) pour isNumeric , est ce que je peux l'introduire dans mon test ?
3) dans mon msgbox du test , est ce que je peux enlever la note qui s'affiche à coté du msg "Votre note a été saisie avec succès !" ??
Thx
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 mars 2008 à 14:28
J'ABANDONNE !!!!!!!!!
Et te conseille de ne plus mettre la charrue avant les boeufs !!!!
Il y a un minimum a connaître avant de commencer à développer... et ce minimum s'acquiert (comme tout un chacun) en lisant au moins les bases dans son aide en ligne.
giudy
Messages postés4Date d'inscriptiondimanche 2 mars 2008StatutMembreDernière intervention 6 octobre 2008 2 mars 2008 à 15:26
c'est bon ! j'ai réussi pour les deux boucles until et while !
par contre est ce qu'on peut faire la fonction juste avec Do... Loop ? (sans while et until ?) , par exemple avec un if dans le corps de la fonction
Pour jmfmarques désolé mais ou es l'aide en ligne ? (je suis nouveau sur le site)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 2 mars 2008 à 15:49
"Pour jmfmarques désolé mais ou es l'aide en ligne ? (je suis nouveau sur le site) "
L'aide en ligne n'est pas sur ce site ni sur ce forum !
Elle est sur TA MACHINE (barre d'outil ==>>> ? ou Aide ou Help selon ta version !!!).
Nul (même les plus avancés des développeirs) ne peut valablement développer sans consulter régulèrement cette aide !...