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 :

argument ou appel de procédure incorrect


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Par défaut argument ou appel de procédure incorrect
    Bonjour,

    j'ai écrit le code que voici:
    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
     For Each cellule In plageSource '<< A Ajuster à la plage ...
          
            f = cellule.Value
            sigma2 = 4 * L1 * L2 * ((f / c0) ^ 2)
            sigma3 = Sqr((2 * pi * f * (L1 + L2)) / (16 * c0))
            teta = teta0 + (Ms / (485 * Sqr(f)))
            Y = Sqr(f / fc)
                         
      'Calcul de sigma
            If f11 <= (fc / 2) And f > fc Then ' => SI condition 1 validée ALORS
               sigmaM = 1 / Sqr(1 - (fc / f))
                    
               
            ElseIf f11 <= (fc / 2) And f < fc And f > (fc / 2) Then  ' => SINON, SI condition 2 validée ALORS
               delta1 = ((1 - (Y ^ 2)) * Log(((1 + Y) / (1 - Y)) + (2 * Y))) / (4 * ((pi) ^ 2) * ((1 - (Y ^ 2)) ^ (1.5)))
               delta2 = 0
               sigmaM = (((2 * (L1 + L2) / (L1 * L2)) * (c0 / fc)) * delta1) + delta2
             
               
            ElseIf f11 <= (fc / 2) And f < (fc / 2) Then '=> SINON
               delta1 = ((1 - (Y ^ 2)) * Log(((1 + Y) / (1 - Y)) + (2 * Y))) / (4 * ((pi) ^ 2) * ((1 - (Y ^ 2)) ^ (1.5)))
               delta2 = (8 * (c0 ^ 2) * (1 - (2 * (Y ^ 2)))) / ((fc ^ 2) * (pi ^ 4) * L1 * L2 * Y * Sqr(1 - (Y ^ 2)))
               sigmaM = (((2 * (L1 + L2) / (L1 * L2)) * (c0 / fc)) * delta1) + delta2
              
               
            ElseIf f11 < (fc / 2) And f < f11 And sigmaM > sigma2 Then
               sigmaM = sigma2
               
               
            ElseIf f11 > (fc / 2) And f < fc And sigma2 < sigma3 Then
               sigmaM = sigma2
              
               
            ElseIf f11 > (fc / 2) And f > fc And (1 / Sqr(1 - (fc / f))) < sigma3 Then           sigmaM = 1 / Sqr(1 - (fc / f))
               
               
            ElseIf f11 > (fc / 2) And f > fc And (1 / Sqr(1 - (fc / f))) > sigma3 Then
               sigmaM = sigma3
               
              
            End If
    l'epaisseur est entré en selectionnant sa valeur à l'aide d'un combobox, le souci est qu'à partir d'une certaine épaisseur selectionnée vba affiche le message d'erreur suivant : erreur d'execution 5 : argument ou appel de procédure incorrect. le débogage corespond à la ligne en gras soulignée.
    en cliquant dans l'aide je trouve l'explication suivante :Un argument dépasse probablement la plage des valeurs permises.
    comment régler le problème pour ne pas etre limité dans mes calculs?
    Merci.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf f11 > (fc / 2) And f > fc And sigma3 * Sqr(Abs(1 - (fc / f))) > 1 Then
    Si f<=fc et les 5 premières conditions ne sont pas remplies, on teste la 6ème (ton erreur) et après le 2ème And tu auras division par 0 ou racine d'un nombre négatif

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Par défaut
    dans ce cas ma 6eme condition serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf f11 > (fc / 2) And f > fc And sigma3 * Sqr(Abs(1 - (fc / f))) < 1 Then
    f étant supérieur à fc on a alors (1 - (fc / f)) positif.
    J'ai peut être oublié de le signaler mais f est une plage de fréquence qui couvre 20 cellules, donc il prends plusieurs valeurs différentes.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pourquoi < 1
    Tu avais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf f11 > (fc / 2) And f > fc And (1 / Sqr(1 - (fc / f))) < sigma3 Then
    Au cas où fc=f tu auras division par zéro
    Au cas où fc/f>1, tu auras racine d'un nombre négatif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ElseIf f11 > (fc / 2) And f > fc And (1 / Sqr(1 - (fc / f))) < sigma3 Then 'Initiale
    ElseIf f11 > (fc / 2) And f > fc And (1 / Sqr(Abs(1 - (fc / f)))) < sigma3 Then 'Pour éviter l'erreur racine d'un nombre négtif
    ElseIf f11 > (fc / 2) And f > fc And 1 < sigma3 * Sqr(Abs(1 - (fc / f))) Then 'Pour éviter division par 0
    f étant supérieur à fc on a alors (1 - (fc / f)) positif.
    C'est ce que nous voulons prouver

    Regarde ce petit exemple, c'est pareil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
    Dim x As Integer
     
    x = -8
    If x > 2 Then
        MsgBox "x est supérieur à 2"
    ElseIf x > 0 And Sqr(x) < 2 Then
        MsgBox "racine de x inférieur à 1"
    Else
        MsgBox " erreur"
    End If
    End Sub
    On a reproduit ton erreur 5!!

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Par défaut
    en fait je pense avoir compris : quand j'augmente l'épaisseur je diminue fc à tel point que mon sigma d'est plus couvert par mes 6 conditions et vba donne alors sigma=0 et donc Log(0) il n'est pas ça mais comment faire alors ?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    mais comment faire alors ?
    Revois tes conditions tenant compte de l'exemple du post #4

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 201
    Par défaut
    ok je verrai ça demain et je vous tiens au courant , en tout cas merci du coup de main j'apprécie vraiment.

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

Discussions similaires

  1. [XL-2003] Shell et Erreur d'exécution 5: Argument ou appel de procédure incorrect
    Par akr54 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2010, 14h15
  2. Erreur d'exécution 5 ; Argument ou appel de procédure Incorrect
    Par amirad dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 31/12/2009, 19h34
  3. Réponses: 4
    Dernier message: 02/09/2008, 21h43
  4. Workbooks.Open : Erreur "Argument ou appel de procédure incorrect"
    Par Kropernic dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/07/2008, 09h49
  5. Argument ou appel de procédure incorrect lors du lancement d'un .bat
    Par 512banque dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 17/03/2008, 17h23

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