IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA] Loi Normale


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Par défaut [VBA] Loi Normale
    Bonjour à tous !

    Petit problème avec mon code pour la loi normale...

    Voici le code utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mu = fl.Range(cd, cf).Cells.Count / 2
    sgm = mu / 2
    nbc = 0
    For Each c In fl.Range(cd, cf).Cells
        nbc = nbc + c.Count
        c.Offset(1, 0).FormulaR1C1 = "=R9C6*(NORMDIST(" & nbc & "," & mu & "," & sgm & ",TRUE)-NORMDIST(" & nbc - 1 & "," & mu & "," & sgm & ",TRUE))"
        c.Offset(1, 0).Value = c.Offset(1, 0).Value * c.Value / cd.Value
    Next c
    Mon problème est que NORMDIST() ne supporte pas que mu ou sgm ne soit pas entier...

    Que faire ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Etes-vous certain qu'il s'agisse d'un problème de nombre entier.

    Ne serait-ce pas un problème de format car sur Excel cette formule fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LOI.NORMALE(42;40;1,5;VRAI)
    Tout comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =B1*(LOI.NORMALE(42;40;1,5;VRAI)-LOI.NORMALE(30;25,1;0,8;VRAI))

  3. #3
    Membre éclairé Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Par défaut
    Effectivement, lorsque je remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.Offset(1, 0).FormulaR1C1 = "=R9C6*(NORMDIST(" & nbc & "," & mu & "," & sgm & ",TRUE)-NORMDIST(" & nbc - 1 & "," & mu & "," & sgm & ",TRUE))"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c.Offset(1, 0).FormulaR1C1 = "=R9C6*(NORMDIST(" & nbc & ",5,2.5,TRUE)-NORMDIST(" & nbc - 1 & ",5,2.5,TRUE))"
    le code fonctionne correctement...

    le problème est que mu et sgm doivent être calculé...

    Une solution ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Vous pouvez donner les lignes de code où ces variables sont calculées ?

    Dans vos modules vous avez mis "Option Explicit" et donc déclaré les variables ?

  5. #5
    Membre éclairé Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Par défaut
    calcul des variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mu = fl.Range(cd, cf).Cells.Count / 2
    sgm = mu / 2
    le code est inscrit dans la sub commandbutton1_click
    je n'ai pas "option explicit" mais mes variables sont déclarées en tant que single

  6. #6
    Invité
    Invité(e)
    Par défaut
    Vous avez regardé la valeur des variables "mu" et "sgm" ?

    Est-ce que le séparateur décimal n'apparaît pas en tant que "," et non "." ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Loi normale sur vba
    Par hcfkns dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/04/2013, 21h28
  2. Réponses: 5
    Dernier message: 26/08/2009, 09h53
  3. [ocaml][débutant] Loi normale
    Par coolargol dans le forum Caml
    Réponses: 1
    Dernier message: 17/04/2007, 22h30
  4. Help, Loi Normale
    Par hteamspy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2006, 10h25
  5. [Statistiques] Générer une loi normale
    Par mhtrinh dans le forum C
    Réponses: 6
    Dernier message: 19/05/2006, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo