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

VB.NET Discussion :

syntaxe des formules contenant LN et EXP


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut syntaxe des formules contenant LN et EXP
    Bonjour,

    Je suis en train de me tirer les cheveux pour pouvoir intégrer deux formules extraites d'un fichier excel et qui pose problème sur vb2005 .net

    Je vous donne les formules excel:

    lambda =(LN((C39/E39)*(E41/C41))/(D33-D31))
    a0 =(C39/E39)*(EXP(D3*(D31-D29)))

    et voici ce que j'ai écris en vb

    lambda = (Log(cps1 / v1) * (cps2 / v2)) / (ps2min - ps1min)
    a0 = (cps1 / v1) * Exp(lambda * (ps1min - ivmin))

    En fait , il n'y a pas d'erreur dans les formules mais les résultats sont totalements différents

    ce que j'aimerais savoir, c'est où se trouve l'erreur ? et comment y remédier.
    Et plus je regarde les formules , moins je trouve la solution ((

    Merci pour vos réponses


    Olivier

  2. #2
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !
    Il me semble que ton Log ne prend que le premier facteur...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut
    salut pacmann,



    bien vu !! j'ai effectué les changements mais apparement il n'y a pas que ça

    et je suis certain qu'au moins une erreur se trouve dans la première formule (lambda) car j'affiche un messagebox de la réponse lambda et elle ne correspond pas à celle que j'ai sur un exemple en excel.

    on se rapproche

    merci beaucoup

    olivier

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Tu peux nous montrer ce que tu as maintenant, a priori, ca devrait etre ca je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    lambda = Log((cps1 / v1) * (cps2 / v2)) / (ps2min - ps1min)
    a0 = (cps1 / v1) * Exp(lambda * (ps1min - ivmin))

  5. #5
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Et si ça ne marche pas, tu n'as pas le choix : tu refais ton coup de la textbox sur chaque facteur et chaque terme de lambda !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut
    re,

    ca donne le meme resultat qu'après les changements de pacmann

    je vais encore chercher

    Merci à vous

    olivier

  7. #7
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Tu veux vraiment pas nous montrer ton code ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut
    Voila

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btcal01.Click
            Dim sd11, sd12, sd21, sd22, p11, p12, p21, p22, bf, moysd, moyp, moyres As Double
            Dim ivh, ivm, ps1h, ps1m, ps2h, ps2m, tiv, dil, cps1, cps2, v1, v2, ivmin, ps1min, ps2min As Double
            Dim poids, taille, bsa, dc, vd, lambda, clair As Double
            Dim a0 As Double
     
     
     
            'moyenne des standards
     
            sd11 = tbsd11.Text
            sd12 = tbsd12.Text
            sd21 = tbsd21.Text
            sd22 = tbsd22.Text
            moysd = (sd11 + sd12 + sd21 + sd22) / 4
     
            ' moyenne patient
     
            p11 = tbp11.Text
            p12 = tbp12.Text
            moyp = (p11 + p12) / 2
     
            'moyenne résidus
     
            p21 = tbp21.Text
            p22 = tbp22.Text
            moyres = (p21 + p22) / 2
     
            'transformation heures en min
     
            ivh = tbivh.Text
            ivm = tbivm.Text
            ps1h = tbps1h.Text
            ps1m = tbps1m.Text
            ps2h = tbps2h.Text
            ps2m = tbps2m.Text
     
            ivmin = (ivh * 60) + ivm
            ps1min = (ps1h * 60) + ps1m
            ps2min = (ps2h * 60) + ps2m
     
            lbliv.Text = ivmin.ToString
            lblps1.Text = ps1min.ToString
            lblps2.Text = ps2min.ToString
     
            ' calcul du bsa
     
            poids = tbpoids.Text
            taille = tbtaille.Text
     
            bsa = 10 ^ ((((Log10(poids) * 0.425) + ((Log10(taille) * 0.725))) - 2.144))
            tbbsa.Text = bsa.ToString
     
            'calcul de la dose corrigée
     
            bf = tbbf.Text
            tiv = tbtiv.Text
            dil = tbdil.Text
            cps1 = tbcps1.Text
            cps2 = tbcps2.Text
            v1 = tbv1.Text
            v2 = tbv2.Text
     
            dc = (((moyp - bf) - (moyres - bf)) * (tiv * dil)) / ((moysd - bf) * 1000)
            tbdc.Text = dc.ToString
     
     
            'calcul du vol de distribution
     
     
            lambda = Log((cps1 / v1) * (cps2 / v2)) / (ps2min - ps1min)
     
             a0 = (cps1 / v1) * Exp(lambda * (ps1min - ivmin))
     
            vd = 1000 * (dc / a0)
     
            tbvd.Text = vd.ToString
     
     
            'calcul de la clairance
     
            clair = (1.73 * 0.87 * vd * lambda) / bsa
     
            tbclair.Text = clair.ToString


    Est-ce que ca vous suffit ?

    Olivier

  9. #9
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    'calcul de la clairance

    clair = (1.73 * 0.87 * vd * lambda) / bsa

    tbclair.Text = clair.ToString
    Fais la même chose avec cps1, v1, cps2, v2, ps2min, ps1min.
    Tu pourras alors comparer avec le détail de ta formule Excel, puis remonter au fur et à mesure sur les écarts pour déterminer la source de ton erreur...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut
    bonjour,

    Citation Envoyé par pacmann Voir le message
    Fais la même chose avec cps1, v1, cps2, v2, ps2min, ps1min.
    je ne te suis pas très bien, tu me montre une formule et me dis de faire la meme chose avec d'autres données ????

    merci de m'éclairer

    Olivier

  11. #11
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Ah, désolé, je parlais plus précisément de :
    tbclair.Text = clair.ToString
    Et donc :
    tb1.text = cps1
    tb2.text = v1
    tb3.text = cps2
    ... te permet de voir le détail du calcul, et de le comparer au détail du calcul dans Excel.

    Cela dit, tu peux aussi simplement visualiser les valeurs en debug

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2007
    Messages : 51
    Par défaut
    Bonjour,

    Alors voila, j'ai enfin trouvé le problème et ce n'est pas dû à la syntaxe mais bien à moi même

    En recopiant la formule à partir d'excel, j'ai inversé 2 valeurs


    avant : lambda = Log((cps1 / v1) * (cps2 / v2)) / (ps2min - ps1min)


    solution : lambda = Log((cps1 / v1) * (v2 / cps2)) / (ps2min - ps1min)

    c'était tout bête et pour ma part , je suis désolé de vous avoir dérangé pour cela. La prochaine fois , j'essaierai de faire plus attention.

    Merci à tous encore une fois

    Olivier

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

Discussions similaires

  1. [XL-2007] masquer des lignes (contenant ou non des formules) si elles sont vide de chiffres
    Par jeffouletofou dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 13/02/2011, 21h57
  2. Macro avec formule utilisant des cellules contenant des formules Vlookup
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/10/2010, 16h13
  3. [VBA Excel] Formule contenant des noms de colonnes dans macro
    Par Tinnou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/06/2007, 19h09
  4. Réponses: 5
    Dernier message: 08/03/2007, 11h13
  5. Verrouiller cellule contenant des formules
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 19/12/2005, 12h47

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