Formule "moyenne", avec variable. VBA
Résolu
Lloris
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Moyenne vba
- Excel moyenne - Guide
- Moyenne en anglais excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
3 réponses
Tu peux essayer cela :
(ça fait la moyenne de toutes les valeurs de ta premières colonnes, jusqu'à la première case vide)
(ça fait la moyenne de toutes les valeurs de ta premières colonnes, jusqu'à la première case vide)
Dim derline5 As Byte derline5 = Range("A1").End(xlDown).Row Dim somme As Integer Dim moyenne As Integer Dim r As Byte somme = 0 For r = 1 To derline5 somme = somme + Cells(r, 1).Value Next moyenne = somme / (derline5) Cells(derline5 + 1, 1).Value = moyenne Next
Voila ce que j'ai trouvé au final
Dim derline5 As Integer derline5 = Range("AB2").End(xlDown).Row Dim somme As Long Dim moyenne As Integer Dim r As Integer somme = 0 For r = 2 To derline5 somme = somme + Range("AB" & r).Value Next r moyenne = somme / (derline5 - 1) 'Cells(derline5 + 1, 1).Value = moyenne Else: l = 0 End If
De rien, je me fais beaucoup aidé, je ne suis pas un pro non plus, donc si je peux rendre service en retour !
Effectivement, la déclaration des types dépend du nombre de valeurs. Moi je l'avais fait pour un code où j'avais maxi une dizaine de valeurs, donc ça fonctionne bien.
Je ne sais pas trop pour Cells et Range par contre, chez moi ça marche...
Enfin bon, du moment que tu y sois arrivé !
A plus
Effectivement, la déclaration des types dépend du nombre de valeurs. Moi je l'avais fait pour un code où j'avais maxi une dizaine de valeurs, donc ça fonctionne bien.
Je ne sais pas trop pour Cells et Range par contre, chez moi ça marche...
Enfin bon, du moment que tu y sois arrivé !
A plus
je viens de tester le code que tu m'as passé, mais il ne fonctionne pas.
à la ligne : ,
ça me dit "Imcompatibilité de type "..
Au lieu d'utiliser les "Cells", je prefère utiliser les "Range".
Ensuite, j'ai remplacé les variables "Bytes" par des "Integer", mais surtout, j'ai défini "somme" non plus comme un "Integer", mais comme "Long" (les valeurs étant très importantes, la valeur de somme dépassait les capacités d'un simple Integer.
Pour finir, le "derline5" renvoi le numéro de la ligne, mais la ligne 1 est une ligne de titre, j'ai donc modifier la formule de la moyenne en : moyenne = somme / (derline5 - 1)
Voila mon code
Je te remercie de m'avoir mis sur la bonne voie, sans ton aide je n'aurais pas trouvé..c'est surtout le "Range("..").End(xlDown).Row" auquel je n'avais pas pensé, et qui me sera surement très utile par la suite.
=D bonne journée.