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

Excel Discussion :

erreur étrange dans le calcul d'une formule [XL-2003]


Sujet :

Excel

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut erreur étrange dans le calcul d'une formule
    Bonjour à tous,

    voilà, j'ai une feuille Excel (Excel 2003, en englais) très complexe (c'est pas moi qui l'ai fait). Il y a des formules dans tous les sens, et le code VB correspondant est énorme. Au final j'ai une cellule qui contient le résultat final de tous les calculs. Lorsque je veux voir les entrailles de ces calculs, j'ouvre l'éditeur VB et je débuggue pas à pas, ça fonctionne bien. Jusqu'ici donc, tout va bien.

    Tout va bien, jusqu'à ce que j'esaie de modifier une cellule qui est de type date: le VB me renvoie une erreur au lieu du résultat (dans la cellule résultat j'ai: #VALUE!). Donc bon une erreur, ok, je vais débugger le code VB pour voir ce qu'il se passe (l'aide Excel - le petit icone avec le point d'exclamation - ne m'apprends rien). Là le debugger de VB est devenu fou: il exécute la fonction principale, s'arrête en plein milieu et jamais au même endroit, puis recommence (alors que ce n'est pas une boucle). Du coup je reviens à ma feuille Excel, je fais ctrl+z pour anuler la modif de ma date. La date reviens bien à sa valeur initiale, mais l'erreur persiste: j'ai toujours #VALUE! dans ma cellule de résultat et le debugger VB est toujours dans les choux.

    Avez-vous une idée de ce qu'il peut bien se passer? Les symptômes que je vous décris ici vous donnent-ils une idée de la maladie?

    J'espère que mon explication est claire, mais comme je n'y connais rien à Excel, j'imagine que ça doit être un peu flou. Demandez-moi des précisions sinon.

    note: Cette feuille Excel a été faite avec Excel 2003 en anglais, et mon Excel a moi est également un 2003 en anglais.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Sans le classeur en question, difficile d'aider
    Peut-être afficher les quelques lignes de code ou se situe la première erreur sous VBA ?
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Sans le classeur en question, difficile d'aider
    Oui je me doute bien, mais je n'ai pas le droit de la montrer

    Citation Envoyé par HAL-9000 Voir le message
    Peut-être afficher les quelques lignes de code ou se situe la première erreur sous VBA ?
    Le problème c'est que le debuggueur VB devient fou, et il est impossible de savoir où est l'erreur.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Alors fait du pas à pas depuis le départ (F8).
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  5. #5
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Alors fait du pas à pas depuis le départ (F8).
    Oui c'est bien ce que je fais, mais ce qu'il se passe c'est:
    tout se passe bien, pas d'erreur, jusqu'à ce qu'il revienne, sans raison, au début de la fonction.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Tu lances comment ton fichier ?
    (PS : utiliser une dynamque à la BS pour simuler des actifs c'est un peu trivial non ? une vol stochastique peut-être ? )
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Aucun évènement n'est lié au lancement de tes macros ?
    Comment tu les lances du coup ?

    J'attends ta réponse :sifle:
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  8. #8
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Aucun évènement n'est lié au lancement de tes macros ?
    Comment tu les lances du coup ?

    J'attends ta réponse :sifle:
    Ben je clique sur la cellule qui contient la formule qui donne le résultat, et j'appuie sur la touche 'entrée'.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Je viens de piger ton problème
    Dans ta cellule associée à ValDate, la valeur de celle-ci est "=startdate".
    Donc cette cellule va prendre la valeur de la cellule nomée "stardate" qui est celle juste en dessous. Il faut modifier la cellule associée à StartDate pour modifier ta cellule associée à ValDate
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  10. #10
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    utiliser une dynamque à la BS pour simuler des actifs c'est un peu trivial non ? une vol stochastique peut-être ?
    Je comprends pas ce que tu dis
    Moi ces histoires d'actifs, instruments, montecarlo chépakoi, j'y comprends rien et je ne souhaite pas y comprendre . Je dois juste traduire le code VB en C++.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  11. #11
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Je viens de piger ton problème
    Dans ta cellule associée à ValDate, la valeur de celle-ci est "=startdate".
    Donc cette cellule va prendre la valeur de la cellule nomée "stardate" qui est celle juste en dessous. Il faut modifier la cellule associée à StartDate pour modifier ta cellule associée à ValDate
    Ben oui mais moi je veux que les 2 soient différentes
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Ben non justement, tu rentres ta date initiale et date finale, et ValDate va forcément partir de ta date initiale...
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  13. #13
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Oui mais il me faut simuler tous les cas, et donc les cas où la date de valoration (valdate) est supérieure à la date initiale.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par r0d Voir le message
    Oui mais il me faut simuler tous les cas, et donc les cas où la date de valoration (valdate) est supérieure à la date initiale.
    Tu veux pricer un dérivé sur actif à une date future donc... le soucis c'est qu'il va te falloir le spot du sous-jacent à cette date future, la volatilité future, etc. C'est pas le but d'un pricer, de faire de la prévision...

    Tu dois rentrer la date d'aujourd'hui (avec la valeur du spot aujourd'hui, la valeur du taux d'intêret actuelle, etc.) la date d'échéance du dérivé, et tu lances ta fonction que te donne le prix du produit évalué à la date d'aujourd'hui (ou à la limite à une date antérieure).
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  15. #15
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par HAL-9000 Voir le message
    Tu veux pricer un dérivé sur actif à une date future donc... le soucis c'est qu'il va te falloir le spot du sous-jacent à cette date future, la volatilité future, etc. C'est pas le but d'un pricer, de faire de la prévision...
    Et pourtant, si tu regardes le code VB de la fonction principale (BMW_Rainbow()), il y a plusieurs tests du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If StartDate < ValDate Then
    En gros, d'après ce que j'ai compris, il y a deux "branches" dans ce pricer. Si startdate > valdate, alors il fait un truc, et si startdate < valdate, alors il fait autre chose. C'est donc que l'on peut avoir un cas ou valdate est supérieur et donc, c'est une sorte de prédiction qu'on fait non? Même si effectivement ce n'est pas l'idée normalement, c'est pas possible un pricer qui fasse de la prédiction?

    En fait, moi je ne veux pas comprendre ces trucs-là (je fais même un effort pour ne pas les comprendre), parce que sinon ils vont m'envoyer chez le client et je n'en sortirai plus. Et je ne veux pas finir mes jours dans une banque.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  16. #16
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    Ou alors, ce n'est pas de la prédiction mais c'est qu'on peut bosser, par exemple, sur une startdate d'hier, mais effectuant la valoration pour aujourd'hui. On a donc bien, dans ce cas, valdate différent de startdate.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 134
    Points : 129
    Points
    129
    Par défaut
    ta startdate correspond à la date à laquelle tu veux pricer ton produit. Tu peux tout à fait le pricer à une date passée oui, mais pas future. Dans le cas de la date passée, tu pars encore de la date initiale, donc valdate=stardate.

    Je ne sais pas pourquoi cette case est là, elle est facultative, ce n'est juste qu'un raccourci vers la case d'en dessous.
    Au taf : Quad Core/8Go de RAM sous Win Seven 64 - Matlab 2009b 64bit.
    Perso : Core 2 Duo/8Go de RAM Mac OS X 10.6 - Matlab 2009b 64bit

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Points : 484
    Points
    484
    Par défaut
    Bonjour r0d, HAL-9000 et le forum,

    Je pense que l'erreur vient de la formule Excel (en Anglais) EDATE. Elle correspond en français à MOIS.DECALER (il faut impérativement rajouter la macro complémentaire Utilitaire d'analyse via le menu Outils).
    Il suffit alors de faire un remplacer de EDATE par MOIS.DECALER dans les formules pour que cela marche.

    EDIT :
    Oups, j'avais pas vu que tu avais un Excel en Anglais. EDATE devrait donc marcher, mais as-tu bien ajouté l'Add-In Utilitaire d'analyse ?

  19. #19
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    1er question:
    ta cellule est au format date elle n'est pas bloquer par une limitation dans les données de validation ?
    2eme question
    as tu suivi les dépendants de ta cellule
    et le ascendant de l'erreur ( sur la feuille pas le code ) il est fort possible que ce qui n'est pas digéré soit dans une autre formule
    3eme question
    as tu regardé si une macro évènementielle ne traficoter pas tes valeurs

  20. #20
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 264
    Points : 6 683
    Points
    6 683
    Billets dans le blog
    2
    Par défaut
    re,

    je vous remercie infiniment pour votre aide, mais finalement je laisse tomber.
    J'étais parvenu à modifier ce que je voulais, puis après 2 heures de boulot, je sauvegarde, et là tout part en vrille comme au début (les formules qui retournent des erreurs, etc.).

    Je laisse tomber ce client. De toutes façons, j'en peux plus de bosser pour ces banques, c'est du grand n'importe quoi... je pourrai écrire un livre... 'fin bref.

    Encore merci à vous, et pardon pour le dérangement.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL-5.1] Etablir un calcul d'une formule contenue dans une colonne
    Par allsys dans le forum Requêtes
    Réponses: 0
    Dernier message: 16/12/2014, 18h35
  2. problème dans l'écriture d'une formule
    Par jackall dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 19/06/2008, 14h50
  3. Réponses: 4
    Dernier message: 13/06/2008, 03h47
  4. Réponses: 1
    Dernier message: 06/05/2008, 10h10
  5. [VBA-Excel] Calcul d'une formule avec une inconnue
    Par micwiss dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/10/2006, 16h04

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