Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème sur ce code au niveau de la fonction Average

rimbaut

XLDnaute Nouveau
Bonsoir,
J'ai recopié bêtement un code que j'ai trouvé sur un bouquin pour faire des statistiques mais il bloque au niveau de la fonction "average" et je ne comprends pas pourquoi.

Voici mon code :

Option Base 1
Sub Statistiques_Elémentaires()
Dim Plage_Rentabilites As Range
Dim Feuille As Worksheet
Dim Nombre_lignes, Numero_ligne As Integer
Nombre_lignes = Worksheets.Count - 1
ReDim Tableau_Resultats(Nombre_lignes, 7) As Variant

For Each Feuille In Worksheets
If Feuille.Name <> "Statistiques" Then
Feuille.Activate
Numero_ligne = Numero_ligne + 1
Range("C3").Select

Set Plage_Rentabilites = Range(Selection, _
Selection.End(xlDown)).Offset(-1, 1)

Plage_Rentabilites.FormulaR1C1 = _
"=LN((R[1]C2+RC3)/RC2)"

Tableau_Resultats(Numero_ligne, 1) = _
Feuille.Name

Tableau_Resultats(Numero_ligne, 2) = _
WorksheetFunction.Count(Plage_Rentabilites)

Tableau_Resultats(Numero_ligne, 3) = _
WorksheetFunction.Average(Plage_Rentabilites)

Tableau_Resultats(Numero_ligne, 4) = _
WorksheetFunction.Median(Plage_Rentabilites)

Tableau_Resultats(Numero_ligne, 5) = _
WorksheetFunction.StDev(Plage_Rentabilites)

Tableau_Resultats(Numero_ligne, 6) = _
WorksheetFunction.Skew(Plage_Rentabilites)

Tableau_Resultats(Numero_ligne, 7) = _
WorksheetFunction.Kurt(Plage_Rentabilites)

End If

Next Feuille
Worksheets("Statistiques").Activate
For i = 1 To Nombre_lignes
For j = 1 To 7
Cells(i + 1, j).Value = Tableau_Resultats(i, j)
Next j
Next i

End Sub

Je remercie d'avance toute personne qui voudra bien me renseigner.
 

Fo_rum

XLDnaute Accro
Re : Problème sur ce code au niveau de la fonction Average

Salut,

à première vue, ta formule "=LN((R[1]C2+RC3)/RC2)"
peut engendrer une erreur de calcul ; celui de la moyenne engendrera donc aussi une erreur.
 

chris7777777

XLDnaute Nouveau
Re : Problème sur ce code au niveau de la fonction Average

salut les amis,

voilà un petit bout de code ultra-simple pour retrouver à peu près la fonction moyenne dans vba.

attention, je suis sur une version us d'excel il faut probablement remplacer average par moyenne après "WorksheetFunction."

Function average()

ld = 2
cd = 1
lf = 11
cf = 10

average = Application.WorksheetFunction.average(Range(Cells(ld, cd), Cells(lf, cf)))

End Function
 

Discussions similaires

Réponses
7
Affichages
447
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…