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 :

probleme de syntaxe


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut probleme de syntaxe
    Bonsoir , j'ai écrit ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function valeur(ByVal x As Double) As Double
    Const Cb = 5
    Const Cm = 12
        If x <= 10000 Then
            valeur = Cb + Cm + x*1,2
    Sur la dernière ligne je dis bien que la fonction valeur vaut la constante cb + la constante cm + la variable x multipliée par 1,2 .

    Je ne vois pas où est le probleme car j'ai déjà vu des codes ou on attribuait directement une valeur numérique à la fonction , genre la fonction polynome :

    polynome = 3 , ya pas d'erreur de syntaxe , alors pq dans la mienne yaurait une erreur de syntaxe ?

    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    j'ai résolu le probleme de syntaxe mais là j'ai un probleme de compilation dû au nombre d'arguments , pour dans ma définition de fonction je ne définis qu'un argument à manipuler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function valeurCommission(ByVal x As Double) As Double
    Const Cb = 5
    Const Cm = 12
        If x <= 10000 Then
            valeurCommission = valeurCommission(x * 0, 12) + Cb + Cm
        Else
            valeurCommission = valeurCommission(x * 0, 9) + Cb + Cm
        End If
    End Function

  3. #3
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    re bonsoir Maxence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      valeur = Cb + Cm + x*1,2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      valeur = Cb + Cm + x*1.2
    VBE ne reconnait pas la virgule comme séparateur décimal

    @+

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    bon ok alors j'ai modifié , tout compile bien mais quand je teste cette fonction dans excel j'ai un #valeur! .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function valeurCommission(ByVal x As Double) As Double
    Const Cb = 5
    Const Cm = 12
        If x <= 10000 Then
            valeurCommission = valeurCommission(x * 0. 12) + Cb + Cm
        Else
            valeurCommission = valeurCommission(x * 0. 9) + Cb + Cm
        End If
    End Function
    c'est donc une erreur en rapport avec le typage , est ce que par hasard ça serait pas dû aux Cb et Cm que j'ai mis dans valeurComission ?

    merci

  5. #5
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    re

    essaie de lire ta fonction en français.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function valeurCommission(ByVal x As Double) As Double
    Const Cb = 5
    Const Cm = 12
    valeurCommission = IIf(x <= 10000, (x * 0.12) + Cb + Cm, (x * 0.9) + Cb + Cm)
    'ou
    '    If x <= 10000 Then
    '        valeurCommission = (x * 0.12) + Cb + Cm
    '    Else
    '        valeurCommission = (x * 0.9) + Cb + Cm
    '    End If
    End Function
    cordialement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    je n'ai pas compris ton dernier message...je relis ma fonction et je ne vois pas vraiment ce qui cloche , la seule hypothèse que je peux faire c'est qu'il y a un problème avec les types...mais je ne le vois pas

  7. #7
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    valeurCommission = valeurCommission(x * 0.12) + Cb + Cm
    comment lis tu ceci?
    Tu avais bien commencé (hormis le séparateur décimal)
    Citation Envoyé par Maxence45 Voir le message
    Bonsoir , j'ai écrit ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function valeur(ByVal x As Double) As Double
    Const Cb = 5
    Const Cm = 12
        If x <= 10000 Then
            valeur = Cb + Cm + x*1,2
    fred

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 450
    Par défaut
    la fonction valeurCommission renvoit la valeur de x multipliée par 0.12 , et on ajouter à ce résultat la valeur de la constante Cm et Cb

  9. #9
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Ce que tu viens de traduire, c'est ce que tu dois écrire.
    Il y a une ValeurCommission que tu n'as pas traduit

    @+

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

Discussions similaires

  1. probleme de syntaxe sql dans VB
    Par njac dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2005, 14h41
  2. [VB.NET] Probleme de syntaxe
    Par microthib dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/03/2005, 13h49
  3. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52
  4. [Débutante] Problèmes de syntaxe
    Par new_wave dans le forum Prolog
    Réponses: 4
    Dernier message: 02/11/2004, 18h39
  5. Problemes de syntaxe
    Par maahta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 01/10/2003, 13h40

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