WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 2011
-
6 sept. 2009 à 17:08
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 2011
-
10 sept. 2009 à 19:00
Bonjour !!
J'èspere que vous pourez m'aider !! J'ai créer un code vba, une fonction pour être plus précis !! Malheuresement, cette fonction ne marche pas et il ressort une erreur comme quoi ma fonction ne renvoie pas d'argument !! Voici mon code :
Function Calcul_Dif_Mo_Vo2Pds_S() As Double
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
moyenne = (Total / (numCells - 1))
Wend
Calcul_Dif_Mo_Vo2Pds_S = Cells(2, 11) - moyenne
End Function
J'èspère que quelqu'un pourra m'aider et déceler l'erreur dans mon code ou me dire pourquoi j'ai ce message d'erreur !
merci d'avance ^^
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 6 sept. 2009 à 20:38
1ere chose : je suis obligé de faire ma fonction en code car ma moyenne ce calcul sur un certain nombre de ligne qui sera de plus en plus grand au fur et à mesure que le temps passe car alimenté par une base de données !!
2eme chose : ce n'est pas sur une ligne de code que ce pose l'erreur mais sur l'application de ma fonction !
3eme chose : voivi le message d'erreur :
"Impossible de traiter votre question. Soit microsoft excel ne trouve pas de fonction équivalente, soit l'aide n'est pas installé. Cette fonction ne possède pas d'argument.
Resultat = "
Merci d'avance si tu as une reponse pour moi !!
++
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 sept. 2009 à 00:40
Re
-1- Et alors ?
Si ta zone de calcul évolue, pas grave, il suffit de donner un Range aux fonctions SUM et AVERAGE.
Donc, la seule chose à faire est de définir le Range, pas la peine de faire une boucle qui fera perdre du temps à ton programme.
-2- Ton message d'erreur dit que l'erreur est sur une ligne qui semble commencer par
Resultat =
Je n'en vois pas dans le code que tu as collé.
Si c'est l'appel de ta fonction, colle-nous la ligne et vérifie que "Resultat" est bien dimensionné en Double.
Voit si la syntaxe complète de ces lignes change qqchose :
Total = Total + Cells(numCells, 12 ).Value
et
Calcul_Dif_Mo_Vo2Pds_S = Cells(2, 11).Value - moyenne
Vérifie, par une simple recherche, si tu n'aurais pas une variable ou une autre fonction qui porterait le même nom "Calcul_Dif_Mo_Vo2Pds_S" dans ton projet (n'importe où ailleurs)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 sept. 2009 à 00:42
PS : Dimensionne Total en Double aussi
Avec un simple Integer (-32768 à 32767), tu risques d'avoir des surprises, surtout pour les calculs où tu utilises des variables de types différents, Integer et Double, sans avoir utilisé les fonctions de convertion de type.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 sept. 2009 à 00:47
Ton message d'erreur est quand même bizarre.
On dirait que c'est un mesage d'erreur de l'IDE, pas du programme. Une erreur du genre instruction qui a pour paramètre un fichier d'aide, comme une MsgBox dans laquelle tu aurais mis quelque chose après le paramètre Title.
Est-ce que tu aurais une MsgBox dans l'appel de cette fonction perso ?
Vérifie les paramètres, si ça se trouve, c'est juste une histoire de " mail placé.
WrestlingMan
Messages postés78Date d'inscriptionmardi 16 juin 2009StatutMembreDernière intervention17 février 20111 8 sept. 2009 à 19:01
ddesolé mais vu mon emploi du temps je n'ai pas eu le temps de tester !! Mais merci beaucoup pour le temps que tu m'as accordé !! Jt tiens au courant !!