*Excel VBA - "Note non valide"

[Résolu/Fermé]
Signaler
Messages postés
1
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
3 novembre 2013
-
Messages postés
24204
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 octobre 2021
-
Écrivez une fonction EvaluationDC qui calcule une évaluation à partir d'une note donnée.

- note entre 50 et 60 => "très bien"

- note entre 40 et 49 => "bien"

- note entre 30 et 39 => "satisfaisant"

- note entre 20 et 29 => "insuffisant"

- note endesous de 20 => "mauvais"

Appliquez cette fonction sur une feuille de calcule



point supplémentaire :

Faites de sorte que la fonction n'évalue que des notes « légales » c. à d. entre 01 et 60.

Pour toutes les notes illégales on affiche "note non valide"



La dernière "question", c'est mon plus grand problème, j'ai aucune idée comment ça marche...
qqn qui peut m'aider? merci en avance :)





j'ai essayé avec:

Option Explicit

Sub EvaluationDC()



Value = Note

Dim Note As Double

Note = InputBox("Entrez une note entre 01 et 60: ")


If Value = 1 - 60 Then ' note non valide

Elself (Note >= 50) And (Note <= 60) Then

MsgBox ("Très bien")


ElseIf (Note >= 40) And (Note <= 49) Then

MsgBox ("Bien")

ElseIf (Note >= 30) And (Note <= 39) Then

MsgBox ("Satisfaisant")

ElseIf (Note >= 20) And (Note <= 29) Then

MsgBox ("insuffisant")

Else Note > 20 Then

MsgBox ("Mauvais")

End If

End Sub

1 réponse

Messages postés
24204
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 octobre 2021
6 937
Bonjour,

On n'a pas pour habitude de faire les devoirs. Mais comme tu as cherché et démarré on va te guider.

Ton Value = Note ne sert strictement à rien, enlève-le. Surtout que tu l'évalues alors que note n'est pas encore défini. De plus il faut éviter les mots-clés de vba en nom de variable.
Tu définis la variable note, utilise-là

Et fait tet test en commençant par le plus bas, ça t'évite de le répéter puisque le cas est déjà testé.

if note < 1 then
....
elseif note < 20 then
...
elseif ....
...
else
.....
endif

Faites de sorte que la fonction n'évalue que des notes « légales » c. à d. entre 01 et 60.

Il faut que tu boucles tant que la saisie n'est pas conforme, avec un while wend par exemple.
Dans ce cas dans le contrôle ensuite le test < 1 n'a plus lieu d'être puisqu'il ne peut pas arriver.
while note tu_mets_tes_tests_d'invalidité
inputbox(....)
wend

eric
1) En plus du merci (et oui, ça se fait !!!), penser à mettre en résolu (en haut vers votre titre) lorsque c'est le cas. 2) Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.