Bonjour à tous,
Voia 4 heures que j'essaie de me mettre à la programmation pour la création d'une fonction dans Excel.
J'ai lu quelques cours sur internet, des exemples... Puis je me suis lancée.
Je n'en avait jamais fait avant, mais j'ai des bases en C++ (et en Assembleur, m'enfin bon, là...).
Je veux créer une fonction qui me donne la moyenne des valeurs des 5 premiers plateaux présents sur un graphe de fonction, dont les valeurs des Y sont dans la colone B.
Je considère le plateau atteint si la valeur est supérieure à "la la valeur théorique du plateau - 2".
Voila le code :
Public Function plateauhaut(consignehaute As Integer, nbPlateaux As Integer) As Currency
Dim X As Range
Dim somme As Currency
Dim nbVal As Long
Dim nbP As Currency
Dim moyenne As Currency
nbVal = 0
somme = 0
nbP = 0
moyenne = 0For Each X In ActiveSheet.Range("b2:b4002")plateauhaut = moyenne / nbP
If X.Value > consignehaute - 2 Thensome = some + X.ValueElse
nbVal = nbVal + 1If nbVal <> 0 ThenEnd If
moyenne = moyenne + somme / nbVal
nbVal = 0
nbP = nbP + 1
End If
If nbP = nbPlateaux ThenMsgBox "sortie car nbPlateaux atteint"End If
Exit For
Next X
End
End Function
Voici l'affichage que j'obtient lorsque je tape =plateauhaut(60,5) dans une case du classeur : d'abord la boite message "sortie car nbPlateaux atteint" puis la case donne #VALEUR
Etant donné que je suis tout a fait nouvelle au truc, il est probable que l'erreur soit vraiment bête. Seulement je cherche toute seule depuis un moment, et je n'ai aucun prof sous la main (je suis en stage), donc si une âme charitable voulait bien m'aider
Je me dit aussi que le code pourrait certainement être amélioré, mais pour l'instant je veux vraiment comprendre le problème.
Voila, j'espère que quelqu'un aura la patience ! ^^
Merci
-----