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 :

calcul avec un logarithme, erreur de procédure 5


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Points : 45
    Points
    45
    Par défaut calcul avec un logarithme, erreur de procédure 5
    Bonjour, j'ai un problème avec ce code.
    C'est la ligne en rouge qui va pas. Quand je la met en commentaire, le programme tourne niquel. J'ai vérifié les variables utilisées, ce sont les mêmes que pour les 2 lignes d'en dessous (qui marchent !). Les valeurs dans le logarithme sont positives et non nulles...

    je vous ai mis dans le programme toutes les valeurs des variables au moment où il y a le "débogage".

    Merci d'avance pour votre aide

    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
    compt =2'déclaré comme integer, comme col
    H0 = 2 ' H0 déclaré comme variant
    For col = 1 To 36
        If IsEmpty(Workbooks("macro2").Sheets("Hpic(Dirp)").Cells(3, col)) = True Then
            fun = 2
        Else
            m1 = Workbooks("macro2").Worksheets("hi-H0" & col).Range("AB3").Value  'quand survient le bug, m1=30,43564, m1 est déclaré comme variant
    
            mini = Workbooks("macro2").Worksheets("hi-H0" & col).Range("AF3").Value ' mini = 30,43564 au moment du bug, mini est déclaré comme variant
            mu = Workbooks("macro2").Sheets("constantes").Cells(8, col).Value 'mu=8.206327E-2, déclaré comme variant
            P = Workbooks("macro2").Sheets("hi-H0" & col).Range("K2").Value 'P=1.290999 au moment du bug, déclaré comme variant
            rho_weibull = Workbooks("macro2").Sheets("hi-H0" & col).Range("G3").Value 'rho_weibull = 1,0932476 au moment du bug, déclaré comme variant
    
    
            
            
           If mini = m1 Then
                Sheets("houle_dirp").Cells(2, compt).Value = H0 + (1 / rho_weibull * Math.Log(12 * mu)) ^ (1 / P)
                Sheets("houle_dirp").Cells(3, compt).Value = H0 + (1 / rho_weibull * Math.Log(120 * mu)) ^ (1 / P)
                Sheets("houle_dirp").Cells(4, compt).Value = H0 + (1 / rho_weibull * Math.Log(1200 * mu)) ^ (1 / P)
                Sheets("houle_dirp").Cells(6, compt).Value = mini
    
               End If
    compt = compt + 1 
    End If
    Next col

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    SUr la ligne qui te pose pb, et avec tes valeurs 12*mu < 1. Donc le Log est négatif. Or l'opérateur "^" a une particularité :
    L'argument number ne peut être négatif que si l'argument exponant est un entier
    Et ici 1/p n'a rien d'entier.

    Pour t'en tirer, tu peux prendre la valeur absolu et rétablir le signe ensuite.

    En espérant être clair et cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre du Club
    Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Points : 45
    Points
    45
    Par défaut
    Merci beaucoup !

    pour rétablir le signe, est ce que la fonction "signe" existe comme dans matlab ?

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Re,

    En VBA, la fonction signe est Sgn().

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Membre du Club
    Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Points : 45
    Points
    45
    Par défaut
    merci !!

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

Discussions similaires

  1. Champ calculé avec données manquantes = #Erreur
    Par bikeur62 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 24/05/2013, 17h06
  2. Erreur de calcul avec la fonction log
    Par xav181 dans le forum C++
    Réponses: 8
    Dernier message: 07/04/2008, 15h08
  3. Réponses: 8
    Dernier message: 06/03/2008, 16h32
  4. erreur de calcul avec SUM
    Par peyro51 dans le forum Excel
    Réponses: 6
    Dernier message: 14/07/2007, 09h14
  5. Erreurs calculs avec mktime
    Par Sandara dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2006, 15h23

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