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 :

[E-07] Formules créées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut [E-07] Formules créées
    Bonjour,

    j'utilise une formule que j'ai créée sous excel 2000.

    Je suis passé il y a quelques jours sous excel 2007, mais excel n'arrive plus a évaluer ma formule...

    Y a-t-il une manipulation à effectuer?

    Merci d'avance,
    à bientôt,
    Julien.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Difficile de te répondre si tu ne nous dis pas ce qu'est ta formule...

    J'en viens à la question suivante: pourrais-tu nous en dire plus?

  3. #3
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Oui pardon... En fait j'espérais que, peut être, ce problème évoquerait instantanément quelque chose à quelqu'un.

    Bon donc voici mon module VBA:


    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
    Function TauxPrime(Objectif, Realise, BorneInf, BorneInter1, BorneInter2, BorneInter3, BorneSup)
     
    Dim Reussite
     
    Reussite = Realise / Objectif
    If Reussite < BorneInf Then
        TauxPrime = 0
    ElseIf Reussite >= BorneInf And Reussite < BorneInter1 Then
        TauxPrime = Reussite
    ElseIf Reussite >= BorneInter1 And Reussite < BorneInter2 Then
        TauxPrime = 1.8 * Reussite - 0.1
    ElseIf Reussite >= BorneInter2 And Reussite < BorneInter3 Then
        TauxPrime = 2.7 * Reussite - 0.3
    ElseIf Reussite >= BorneInter3 And Reussite < BorneSup Then
        TauxPrime = 3.5 * Reussite - 0.6
    Else: TauxPrime = 3.5 * BorneSup - 0.6
    End If
    End Function
     
     
     
    Function Prime(Objectif, Realise, Enveloppe, BorneInf, BorneInter1, BorneInter2, BorneInter3, BorneSup)
    ' BorneInf      Taux de réussite à partir duquel le taux de prime est supérieur à 0
    ' BorneInter1   Taux de réussite du super objectif 1
    ' BorneInter2   Taux de réussite du super objectif 2
    ' BorneInter3   Taux de réussite du super objectif 3
    ' BorneSup      Taux de reussite à partir duquel le taux de prime est fixe
     
    Prime = TauxPrime(Objectif, Realise, BorneInf, BorneInter1, BorneInter2, BorneInter3, BorneSup) * Enveloppe
    End Function

    J'appelle ensuite cette fonction comme ceci:
    =prime(B40;C40;Q22;$B$7;$C$7;$D$7;$E$7;$F$7).

    A noter que quand j'essaie d'afficher les étapes du calcul, c'est bien la fonction "prime" en elle-même qu'excel n'arrive pas à évaluer, alors que en Excel2000 il y arrive...


    Merci d'avance pour votre aide,
    Julien.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Tu devrais préciser correctement le type de tes arguments dans l'en-tête de tes fonctions: il se peut que tu aies des problèmes de type.

    Fais aussi bien attention à ce que tu manipules, qu'il s'agisse bien d'un simple nombre: il se peut que Excel 2007 ne transmette pas les arguments de la même manière qu'Excel 2000 et envoie à VBA des chaînes de caractère ("B7" par exemple) au lieu de nombres.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Merci pour ta réponse, mais il me semble vraiment que c'est excel qui ne va pas chercher 'prime" dans le module VBA... en effet lorsque j'affiche les étapes du calcul, excel m'annonce qu'il n'arrive pas à évaluerla fonction, et l'erreur affichée est d'ailleurs: #NOM?, alors que je caste maintenant les variables...



    Personne n'a d'idée???
    J'ai vraiment un gros problème....
    SVP

  6. #6
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    J'ai vérifié, en réouvrant le fichier sous excel 2000, après l'avoir réenregistré dans le bon format, ça refontionne.

    Peut etre un problème d'accessibilité des macros?

    Quelqu'un saurait-il comment vérifier?

  7. #7
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Du nouveau: en fait, excel m'annonce à l'ouverture (mais uniquement à l'ouverture):




    Comment les activer (les macros), alors que j'ai un antivirus installé (symantec endpoint protection)

    Merci d'avance,
    Julien.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En revenant a ce que te dit decondelite

    Dans les arguments de ta fonction, il faut donner le type de données.
    Ta fonction renvoie une valeur, mas tu n'as pas indiqué quel est le type de celle-ci.

    Pour tout cela, je t'invite à lire cet article : Les fonctions personnelles dans Excel pour voir comment formuler correctement ta fonction.

    De plus qu'en est-il au niveau de la sécurité sur ton Excel 2007.

    Philippe

  9. #9
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Bonjour Philippe,

    merci pour ta réponse.

    Concernant le type de variable, j'ai fait ce que m'avait dit Condelite (je croyais vous l'avoir dit pardon).

    Par contre, en lisant le tuto sur lequel tu m'as renvoyé, j'ai vu la phrase suivante:

    Remarque importante:
    Les fonctions personnelles ne sont pas disponibles lorsque les macros sont désactivées. Dans ce cas, la formule renvoie la valeur d'erreur #NOM?.


    C'est justement ce qu'il se passe pour moi, et l'annonce est celle de mon message précédent (j'ai mis la fenetre excel).

    Mais je peux par contre utiliser les macros de mon classeur personnel.

    Etrange non? Et comment forcer l'activetion des macros présentes dans ce fichier?

    Merci d'avance,
    Julien.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Pour les macros sous Excel 2007, tu vas dans l'onglet développeur, et là tu as une icône Sécurité des macros avec l'icône Warning, tu cliques et cela ouvre une fenêtre avec plusieurs choix.

    Philippe

  11. #11
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Par défaut
    Merci encore Philippe.

    Par contre, je viens de faire ce que tu m'as dit, mais le choix:

    Toutes les macros sont activées (non recommandé) etc etc...

    est déjà coché.

    Comment excel peut il donc décider de malgré tout me bloquer une macro?

    Merci toujours,
    Julien.

Discussions similaires

  1. [XL-2007] adapter une formule créée en public function
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2009, 19h22
  2. [OpenOffice][Tableur] Erreur avec formules créées sous Excel
    Par Bondin dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 10/12/2008, 16h51
  3. Réponses: 1
    Dernier message: 15/04/2008, 04h22
  4. [Formule] Lever et coucher du soleil
    Par psl dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 21/10/2002, 16h37
  5. [reseaux] Comment creer un compte user à partir d'un formul avec perl
    Par oulai_evado dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 01/10/2002, 19h54

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