Version modif de celle de wolfcyber qui ne fonctionnait pas. J'ai simplement rajouté une variable la somme des coefficients.
Source / Exemple :
Option Explicit
Dim varSaisie As Variant ' Variable de saisie
Dim varCoeff As Variant ' Coéfficient
Dim dblNombre As Double ' Le nombre de note
Dim dblMax As Double ' La note maximum
Dim dblMin As Double ' La note minimum
Dim dblMoyenne As Double ' La moyenne générale
Dim dblSommeCoeff As Double ' somme des coeff
Private Sub Form_Load()
' Initialisation des variables
dblNombre = 0
dblMoyenne = 0
varSaisie = 0
dblSommeCoeff = 0
Do While varSaisie <> ""
varSaisie = InputBox("Entrer une note (laisser vide pour arrêter le comptage) :", "Note N°" & dblNombre + 1)
' Verifie que le nombre se trouve bien entre 0 et 20
If varSaisie >= 0 And varSaisie <= 20 Then
' Verifie si c'est la 1ere saisie ou pas
If dblNombre = 0 Then
' Si oui, initialise les variables mini et maxi
dblMax = varSaisie
dblMin = varSaisie
Else
' Si non :
' - Verifie si la note minimum est supérieur à la saisie
If dblMin > varSaisie Then
' Si oui, modifie l'ancienne valeur minimum par la saisie
dblMin = varSaisie
End If
' - Verifie si la note maximum est inférieur à la saisie
If dblMax < varSaisie Then
' Si oui, modifie l'ancienne valeur maximum par la saisie
dblMax = varSaisie
End If
End If
varCoeff = InputBox("Entrer le coefficient de la note N°" & dblNombre + 1, "Note N°" & dblNombre + 1, "1")
' Si le coeff est vide ou egal a 0,
If varCoeff = "" Or varCoeff = "0" Then
' Alors affiche un message d'erreur
MsgBox "Ce coéfficient est invalide !", vbExclamation, "Erreur"
End If
' Incremente le nombre de note de 1
dblNombre = dblNombre + 1
' Additionne la moyenne à la saisie
dblMoyenne = dblMoyenne + (varSaisie * varCoeff)
' Additionne les coefficients
dblSommeCoeff = dblSommeCoeff + varCoeff
' Si le nombre saisie n'est pas entre 0 et 20,
Else
' et qu'il n'est pas vide (Ce qui signifirai l'arrêt du comptage),
If varSaisie <> "" Then
' Alors affiche un message d'erreur
MsgBox "Le chiffre doit être comprit entre 0 et 20", vbExclamation, "Erreur"
End If
End If
Loop
' Si le nombre de note est superieur à 0
If varCoeff > 0 Then
' Alors fait la moyenne
dblMoyenne = dblMoyenne / dblSommeCoeff
' Sinon,
Else
' La moyenne est egal à 0
dblMoyenne = 0
End If
' Affiche le resultat
MsgBox "La moyenne est de : " & Round(dblMoyenne, 2) & "/20" & vbCrLf & _
"La plus basse note est de : " & dblMin & vbCrLf & _
"La plus haute note est de : " & dblMax & vbCrLf & _
"Le nombre de note est de : " & dblNombre, vbInformation, "Résultat"
' Quitte le programme
End
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.