WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 2011
-
11 août 2009 à 11:34
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 2011
-
17 août 2009 à 11:04
Bonjour,
j'èspère que vous pourrez m'aider !
Voilà, je veux réaliser une fonction de calcul en VBA sur excel pour faire un calcul ! Ce calcul étant une difference entre un nombre et une moyenne !!
Voici mon code :
Function Calcul_Dif_Mo_Vo2Pds_S()
Dim resultat As Double
Dim moyenne As Double
Dim numCells As Integer
Malheuresement celà ne marche pas !! Que dois-je faire ?? Sachant que ma moyenne, au fil du temps porteras sur un plus grand nombre de nombre car mon tableau est lié à une base de données sur Access !
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 11 août 2009 à 13:55
Salut,
pourquoi vouloir creer une fonction alors que tout existe deja dans la liste des fonctions excel?
La formule suivante :
SOMME(5:5)/NB.SI(5:5;">0")
calcul la moyenne des cellules de la ligne 5 si les valeurs qu'elles contiennent sont des nombres superieur ou egale à 0.
Avec cette formule tu peux ajouter ou enlever autant de valeurs que tu veux le resultat sera toujours exact.
Un petit rappel au passage:
ne faite pas de tableau en ligne mais en colonne. Excel fonctionne en colonne ! pour preuve le filtre automatique ne peut s'appliquer qu'aux colonnes ! autre preuve les lignes ne peuvent contenir que 256 valeurs contre plus de 65000 pour les colonnes.
cs_Zock
Messages postés38Date d'inscriptionmercredi 5 novembre 2008StatutMembreDernière intervention15 avril 2010 11 août 2009 à 14:02
While Range("A2").End(xlDown).End(xlToRight).Value <> ""
moyenne = Cells(numCells, 12) <== à chaque fois tu remets ta variable à 0 ?
numCells = numCells + 1
moyenne = (moyenne + Cells(numCells, 12)) / (numCells - 1) <== tu fais la somme des moenne divises par le nombre de fichier ?
resultat = Cells(2, 11) - moyenne
Wend
Cells.Value = resultat
End Function
je vois plus un truc comme ça
Function Calcul_Dif_Mo_Vo2Pds_S()
Dim resultat As Double
Dim moyenne As Double
Dim numCells As Integer
Dim Total as integer
numCells = 1
total = 0
While Range("A2").End(xlDown).End(xlToRight).Value <> ""
total = total + Cells(numCells, 12)
numCells = numCells + 1
Wend
moyenne = (total/ (numCells - 1)
resultat = Cells(2, 11) - moyenne
Cells.Value = resultat
End Function
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 17 août 2009 à 10:55
Déjà merci à tous les deux !! Mais j'ai toujour un problème !!
J'ai essayer ta formule de calcul bigfish_le_vrai en l'adaptant, la voici :
K2-(SOMME(2:9295)/NB.SI(2:9295;">0"))
Seulement voilà sa me ramene comme resultat 0
Je pense que c'est dû au fait qu'il y a des valeur nuls dans ma colonne !! Il me faut donc une formule qui me fasse se calcul mais en faisant la moyenne juste des cellules avec une valeurs et faisant abstraction des autres !! Alors aurais-tu une autre formule pour moi parce que je rame là !!