Calcul d'une moyenne par macro sous excel

Résolu/Fermé
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009 - 27 oct. 2009 à 15:43
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009 - 27 oct. 2009 à 18:05
Bonjour,
étant un réel novice sous excel, je poste une question qui vous semblera certainement très co... mais bon on est comme on nait ^^
Voilà, je souhaite faire une macro sous excel qui me permette de calculer une moyenne toute bête du type m = somme / x avec x = nombre d'échantillons.
Je sais le faire dans la feuille de calcul, mais j'aimerai que cela ce fasse sous VBA et qu'à l'affichage il n'y ai qu'à cliquer sur un boutton ActiveX pour effectuer ce calcul.
J'ai pas mal cherché sur google, yahoo et autres alors j'espère que quelqu'un aura une réponse.
J'espère être au bon endroit et que mes fautes d'orthographes ne gêneront pas trop.
Merci.
A voir également:

8 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2009 à 15:47
Salut,

Tu devrais nous dire la plage pour faire la somme, ce qui nous permettre aussi de connaître le x.
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2009 à 17:39
Re,

Juste un exemple.

Private Sub CommandButton1_Click()
    For i = 2 To 6
        Sum = Sum + Range("B" & i) ' de B2 à B6
    Next
    MsgBox "Moyenne = " & Format(Sum / (i - 2), "0.00")
    'i - 2 puisqu'à la sortie de la boucle i = 7
End Sub
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 oct. 2009 à 17:59
Re,

Private Sub CommandButton1_Click()
    For i = 2 To 6
        Sum = Sum + Range("B" & i) ' de B2 à B6
    Next
    ActiveSheet.Range("B10") = Sum / (i - 2)
    'i - 2 puisqu'à la sortie de la boucle i = 7
End Sub

1
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 oct. 2009 à 15:53
Ah c'est pas bête oui ^^ désolé
La plage est B2:B6, c'est tout petit et sûrement tout con mais bon :s
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 oct. 2009 à 15:55
Ah oui c'est peut être mieu ^^ désolé
La plage de données est B2:B6, c'est tout petit et donc sûrement tout con mais bon :s
0
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 oct. 2009 à 16:54
J'ai testé ça mais ça ne marche pas :'(

Sub CommandButton1_Click()
Dim m, s, C1, C2, C3, C4, C5 As Integer
s = C1 + C2 + C3 + C4 + C5 = ActiveSheet.Cells(10, 2).Value
m = s / 5 = ActiveSheet.Cells(9, 2).Value
C1 = ActiveSheet.Cells(2, 2)
C2 = ActiveSheet.Cells(3, 2)
C3 = ActiveSheet.Cells(4, 2)
C4 = ActiveSheet.Cells(5, 2)
C5 = ActiveSheet.Cells(6, 2)
End Sub

Quelqu'un aurait une idée?
0
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 oct. 2009 à 17:49
ça marche!!!!
Merci pour ton aide, ça fait plaisir ^^
Je t'embête juste une dernière fois, est il possible que le résultat apparaisse dans une cellule (genre en B10)?
Je connai une commande qui s'apelle ActiveSheet.Cells(i,j).value et je suppose qu'il faut utiliser:
Dim m As integer
et après un truc du genre:
m = ActiveSheet.Cells (10 , 2).Value?
0
rougesang Messages postés 14 Date d'inscription mardi 27 octobre 2009 Statut Membre Dernière intervention 27 décembre 2009
27 oct. 2009 à 18:05
Merci pour ces deux réponses à la fois exactes et rapides ^^
Il ne me reste plusqu'à bosser pour gérer ce genre de cas.
0