Bonsoir à tous,
Voilà mon problème :
J'ai développé un fonction personnelle qui utilise la loi de poisson pour faire un calcul de nombre de pièces de rechanges.
Ma fonction effectue des itérations successives jusqu'à ce que le calcul par loi de poisson respecte une condition donnée (passée en 4e paramètre).
Autant à la première itération le calcul s'effectue bien autant pour toutes les itérations suivantes je récupère le message d'erreur #VALEUR!.
Pouvez-vous SVP m'aider à comprendre quelle est mon erreur ?
Merci d'avance pour vos réponses.
Cordialement
oracle7556
PS : Pour aider à comprendre ce qui ce passe voici une copie d'écran et le code VBA de ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 Public Function F_Calcul_NbRechanges(pi_NbMateriel As Integer, pi_Aor As Integer, _ pd_lambda As Double, pd_Pnrs As Double) As Integer '======================================================================================= ' Fonction : F_Calcul_NbRechanges ' Objet : Calculer le nombre de rechanges nécessaires pour maintenir un ensemble _ d'équipements tout en respectant une PNRS donnée. ' Crée le : 05/05/2010 par JCR ' Description : On utilise la loi de poisson pour déterminer par itérations successives _ le nombre de rechanges adéquats ' Arguments : pi_NbMateriel IN = Nombre d'équipements pris en compte _ pi_Aor IN = Temps de fonctionnement opérationnel annuel des équipements _ pd_Lambda IN = Mid Time Between Failure de l'équipement _ pd_Pnrs IN = Probabilité de Non Rupture de Stock à respecter ' Valeur retour : Nombre de Rechanges calculé '======================================================================================= ' Utilisation : vi_NbRechanges = F_Calcul_NbRechanges(pi_NbMateriel,pi_Aor,pd_Lambda,pd_Pnrs) '==============================Historique des modifications============================= ' Date Indice Auteur Sujet ' 05/05/2010 A00 JCR Création ' '--------------------------------------------------------------------------------------- ' Déclarations Publiques / Privées '--------------------------------------------------------------------------------------- Dim vb_Test As Boolean ' Indicateur de sortie de boucle Dim vd_NbRechanges As Double ' Nombre de rechanges calculé Dim vd_NbPannes As Double ' Nombre de pannes attendues Dim vd_LoiPoisson As Double ' Résultat de l'application de la loi de poisson '--------------------------------------------------------------------------------------- ' Initialisations '--------------------------------------------------------------------------------------- vd_NbRechanges = 0 vb_Test = False '--------------------------------------------------------------------------------------- ' Implémentation '--------------------------------------------------------------------------------------- ' On calcule de nombre de pannes attendues vd_NbPannes = pi_NbMateriel * pi_Aor * pd_lambda Do ' On applique la loi de poisson pour chaque évenement vd_LoiPoisson = WorksheetFunction.Poisson(vd_NbRechanges, vd_NbPannes, False) ' On vérifie que le calcul respecte la PNRS imposée If vd_LoiPoisson > pd_Pnrs Then ' OUI : Fin du calcul vb_Test = True Else ' NON : on passe à l'évenement suivant vd_NbRechanges = vd_NbRechanges + 1 End If Loop Until vb_Test ' On renvoie le Nb de rechanges calculé F_Calcul_NbRechanges = CInt(vd_NbRechanges) End Function
Partager