CALCULER MOYENNE

bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 6 avril 2010 à 10:57
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 avril 2010 à 11:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51560-calculer-moyenne

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 avril 2010 à 11:23
J'ai fais un peu de ménage

Voici ce que je suggère

plus tous ces soucis

et gestion, cette fois des parametres regionnaux (virgule ou point)

Option Explicit

Private Sub cmdajouter_Click()
If IsNumeric(txtnote.Text) Then
lstnote.AddItem FormatNumber(txtnote.Text, 1)
ElseIf Val(txtnote.Text) Then
lstnote.AddItem FormatNumber(Val(txtnote.Text), 1)
End If
End Sub

Private Sub cmdcalculer_Click()
Dim somme As Single
Dim moyenne As Single
Dim i As Long
If lstnote.ListCount Then
For i = 0 To lstnote.ListCount - 1
somme = somme + CSng(lstnote.List(i))
Next
moyenne = somme / lstnote.ListCount
lblmoyenne.Caption = FormatNumber(moyenne, 1)
Else
lblmoyenne.Caption = vbNullString
End If
End Sub

Private Sub cmdmodifier_Click()
Dim a As String
Dim i As Long
i = lstnote.ListIndex
If i <> -1 Then
a = lstnote.Text
a = InputBox("Veuillez saisir la nouvelle valeur.", "Modification de valeur", a)
If StrPtr(a) Then
If IsNumeric(a) Then
lstnote.List(i) = FormatNumber(a, 1)
ElseIf Val(txtnote.Text) Then
lstnote.List(i) = FormatNumber(Val(a), 1)
End If
End If
End If
End Sub

Private Sub cmdquitter_Click()
Unload Me
End Sub

Private Sub cmdsupprimer_Click()
Dim i As Long
i = lstnote.ListIndex
If i <> -1 Then
lstnote.RemoveItem i
lstnote.ListIndex = i - 1
End If
End Sub

Private Sub cmdvider_Click()
lstnote.Clear
End Sub
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 avril 2010 à 11:15
Dim n, i As Integer

ici, n sera un Variant

cmdcalculer_Click si ta liste est vide, tu aura une belle division par zéro !

aucune vérification sur le texte qui est entré dans la boite.
le bouton annuler de l'inputbox n'est pas géré

instruction 'End' a proscrire, faire un Unload Me, plutot

cmdsupprimer_Click
crash si rien n'est selectionné

bref, beaucoup de choses a dire sur si peu de code.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 avril 2010 à 11:10
Capture supprimée, merci de ne pas réitérer
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
6 avril 2010 à 10:57
A quoi sert la capture ???
Rejoignez-nous