Bonsoir,
Tout d'abord excusez-moi pour le niveau terrible que je dois avoir en programmation VBA...
Je suis donc étudiant et confronté à un problème dans un de mes exercices et j'aimerais trouver une solution !
l'énoncé :
1.Ecrire un programme qui permet de saisir n notes comprises entre 0 et 20 (0<n≤10 est connu et fixé c’est à dire qu’on demande de saisir cette valeur à l’utilisateur).
2. Ajouter au programme précédent le calcul de la moyenne arrondie à deux décimales des notes, le minimum, le maximum et le nombre d’occurrences du maximum.
3. Ajouter au programme l’affichage des notes saisies sur la première colonne de la Feuille 1 ainsi que la moyenne arrondie a` deux décimales des notes, le minimum, le maximum et le nombre d’occurrences du maximum.
4. On recommence l’exercice mais cette fois-ci on ne connaît pas d’avance le nombre n, le programme continue tant qu’une note incorrecte n’a pas été saisie.
Je suis actuellement bloqué à la question 3 j'ai fais plusieurs essais mais je n'arrive pas à trouver la façon de formuler ma requête, je voudrais pouvoir sélectionner la plage que j'ai fais écrire au programme et comparer une à une les valeurs pour trouver la plus petite et la plus grande !
Voila mon programme,( soyez tolérants svp il doit être brouillon) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Sub ex8_1() Dim nbredenote, A, B, C, D, E, Moyennearrondie As Double Dim Cellule, Min, Max As Double Dim element As Variant C = 0 A = 0 B = 1 D = 0 E = 0 nbredenote = InputBox("combien de note voulez-vous saisir") If nbredenote > 10 Or nbredenote < 0 Then nbredenote = InputBox("Erreur! combien de note voulez-vous saisir (comprises entre 0 et 10)") End If For A = 1 To nbredenote B = InputBox("veuillez saisir la note " & A) Feuil1.Cells(1, A) = B C = C + B Next For Each element In Worksheets("Sheet1").Range(1, 1) If A > Min Then Min = A End If Next MsgBox ("la note minimum est de " & A) For Each element In Range(1, 1) If A < Max Then Max = A End If Next MsgBox ("la note maximum est de " & A) Moyennearrondie = C / nbredenote Moyennearrondie = Round(Moyennearrondie, 2) MsgBox (Moyennearrondie) End Sub
Merci d'avance !
PS : Y a t il une différence entre VBA et VB ?
La balise code ça tue
Partager