Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Calcul de moyenne

0/5 (3 avis)

Snippet vu 32 434 fois - Téléchargée 18 fois

Contenu du snippet

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

A voir également

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.