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 :

Module VBA, feuille Excel [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut Module VBA, feuille Excel
    Bonjour,
    On m'a donné un classeur avec entre autre une feuille qui invoque une fonction VBA. J'ai copié/dupliqué cette feuille et je me rends compte que la copie n'arrive pas à invoquer la fonction du module VBA.
    Comment y remédier?
    Merci d'avance,
    Julien.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Par défaut
    Il faudrait un peu plus de détails si possible, notamment sur le code appelé.
    Peut être qu'il y a une référence au nom de la feuille dedans ou un problème de déclaration

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut
    Merci Roums,

    Voici ce qui se trouve dans la cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=option_value_3D(C4;C5;C6;C7;C8;C9)}
    Et le 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
    31
    32
    33
    34
    35
    36
    37
     
    Function Option_Value_3D(Vol, Int_Rate, PType, Strike, Expiration, NAS)
    ' NAS is number of asset steps
     
    ReDim S(0 To NAS) As Double ' Asset array
     
    dS = 2 * Strike / NAS ' 'Infinity' is twice the strike
    dt = 0.9 / Vol ^ 2 / NAS ^ 2 ' For stability
    NTS = Int(Expiration / dt) + 1 ' Number of time steps
    dt = Expiration / NTS ' To ensure that expiration is an integer number of time steps away
     
    ReDim V(0 To NAS, 0 To NTS) As Double ' Option value array
     
    q = 1
    If PType = "P" Then q = -1 ' Test for call or put
     
    For i = 0 To NAS
    S(i) = i * dS ' Set up S array
    V(i, 0) = Application.Max(q * (S(i) - Strike), 0) ' Set up payoff
    Next i
     
    For k = 1 To NTS ' Time loop
    For i = 1 To NAS - 1 ' Asset loop. End points treated separately
    Delta = (V(i + 1, k - 1) - V(i - 1, k - 1)) / 2 / dS ' Central difference
    Gamma = (V(i + 1, k - 1) - 2 * V(i, k - 1) + V(i - 1, k - 1)) / dS / dS ' Central difference
    Theta = -0.5 * Vol ^ 2 * S(i) ^ 2 * Gamma - Int_Rate * S(i) * Delta + Int_Rate * V(i, k - 1) ' Black-Scholes
    V(i, k) = V(i, k - 1) - dt * Theta
    Next i
     
    V(0, k) = V(0, k - 1) * (1 - Int_Rate * dt) ' Boundary condition at S=0
    V(NAS, k) = 2 * V(NAS - 1, k) - V(NAS - 2, k) ' Boundary condition at S=infinity
     
    Next k
     
    Option_Value_3D = V ' Output array
     
    End Function
    Je ne vois aucune référence. Ce serait donc un problème de déclaration? Où sont placées les déclarations?

    Merci,

    Julien.

  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
    Il faut insérer un module général, y coller la fonction, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Function Option_Value_3D(Vol, Int_Rate, PType, Strike, Expiration, NAS)
    '...
    elle sera reconnue n'importe où dans ton classeur

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut
    Mercatog,
    C'est bien un module général que j'ai. C'est étrange que cela ne fonctionne pas pour la copie...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Par défaut
    Désolé. Je me rends compte que toutes les références au VBA de toutes mes feuilles ne fonctionnent plus. Que faire?
    J.

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

Discussions similaires

  1. Protection des modules VBA sous Excel
    Par Bercud dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/09/2006, 12h35
  2. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01
  3. [VBA]Userform mobile dans une feuille excel
    Par fikren dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2005, 15h45
  4. [VBA-E]Type d'une feuille excel
    Par LitteulKevin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/05/2004, 14h43
  5. [VBA-E] [Excel] Effacer une feuille
    Par Tray dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2003, 10h04

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