Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1263 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème de variables VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de variables VBA

n°2194596
rockr
Posté le 17-06-2013 à 12:14:27  profilanswer
 

Bonjour à tous,
pourriez-vous me venir en aide car j'ai un problème concernant mes variables : le code ne me renvois absolument rien, et lorsque je débug pas à pas, je vois que mes variables sont vides. Or, lorsque NbSteps est de l'ordre de 500 ou plus, alors les variables apparaissent comme "elles devraient le faire".
 
Le code est le suivant :

Code :
  1. Function BinomialTree()
  2.     Dim dt As Double, NbSteps As Integer
  3.     Dim uS As Double, dS As Double, uB As Double, dB As Double
  4.     Dim RuSd As Double, RuSu As Double, RdSu As Double, RdSd As Double
  5.     Dim IntRateRiskless As Double, BondYield As Double, DividendYield As Double
  6.     Dim S_0 As Double, B_0 As Double
  7.     Dim NodeValue() As Double
  8.     Dim CouponFrequency As Double, Coupontime As Double, CouponSchedule() As Double
  9.     Dim ConversionRatio As Double, ConversionValue As Double
  10.    
  11.     Dim i As Double, j As Double, k As Double, l As Double
  12.    
  13.     Worksheets("BinomialTree" ).Activate
  14.    
  15.     dt = Range("Delta_t" ).Value
  16.     NbSteps = Range("NbSteps" ).Value
  17.     uS = Range("UpStock" ).Value
  18.     dS = Range("DownStock" ).Value
  19.     uB = Range("UpBond" ).Value
  20.     dB = Range("DownBond" ).Value
  21.     RuSd = Range("RuSd" ).Value
  22.     RuSu = Range("RuSu" ).Value
  23.     RdSu = Range("RdSu" ).Value
  24.     RdSd = Range("RdSd" ).Value
  25.     IntRateRiskless = Range("LnIntRate" ).Value
  26.     BondYield = Range("LnIntRateRisky" ).Value
  27.     DividendYield = Range("LnDivRate" ).Value
  28.     S_0 = Range("StockPrice" ).Value
  29.     B_0 = Range("BondPrice" ).Value
  30.     ConversionRatio = Range("Conversion" ).Value
  31.     CouponFrequency = Range("CouponFrequency" ).Value
  32.    
  33.     ReDim NodeValue(0 To NbSteps, 0 To NbSteps, 0 To NbSteps)
  34.    
  35.     For i = NbSteps To 0 Step -1
  36.         For j = NbSteps To 0 Step -1
  37.             NodeValue(i, j, NbSteps) = WorksheetFunction.Max(ConversionRatio * S_0 * (uS ^ i) * dS ^ (NbSteps - i), B_0 * (uB ^ j) * dB ^ (NbSteps - j))
  38.            
  39.         Next j
  40.     Next i
  41.    
  42.     For k = NbSteps - 1 To 0 Step -1
  43.         For i = k To 0 Step -1
  44.             For j = k To 0 Step -1
  45.                 NodeValue(i, j, k) = (RuSd * NodeValue(i, j + 1, k + 1) + RuSu * NodeValue(i + 1, j + 1, k + 1) + RdSd * NodeValue(i, j, k + 1) + RdSu * NodeValue(i + 1, j, k + 1)) * Exp(-IntRateRiskless * dt * k)
  46.            
  47.             Next j
  48.         Next i
  49.     Next k
  50.    
  51.     Cells(1, 2) = NodeValue(0, 0, 0) - B_0
  52.    
  53. End Function


 
Voilà pour le topo,
merci beaucoup d'avance
 
Rockr

mood
Publicité
Posté le 17-06-2013 à 12:14:27  profilanswer
 

n°2194616
Marc L
Posté le 17-06-2013 à 14:29:11  profilanswer
 

 
           Bonjour,
 
           tout ce que je peux te dire est
 
           soit il y a une erreur dans les déclarations de type de variable, soit il y a une erreur dans une formule de calcul …
 
           Seul toi peux t'en sortir :  avance en mode pas à pas et affiche la Fenêtre Variables Locales;
                                                 à chaque étape vérifie le résultat de chaque variable …
 

n°2194649
Marc L
Posté le 17-06-2013 à 16:55:42  profilanswer
 

 
           Au fait c'est normal que la fonction ne renvoie rien car sa valeur de retour n'a pas été définie ‼  :ouch:  
           Consulter donc l'aide intégrée de VBA de l'instruction  Function  et son exemple.
           Serait-ce plutôt une procédure ?  Dans ce cas voir l'aide de l'instruction  Sub  …
 
           De plus, les variables initialisées dans les lignes n°26, 27 & 31 ne sont pas utilisées dans les calculs,
           un oubli ou ne servent-elles à rien, à part polluer la mémoire ?!  :sarcastic:
 
           Idem pour les variables déclarées Coupontime, CouponSchedule, ConversionValue, …
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  problème de variables VBA

 

Sujets relatifs
[VBA] soustraire une variable à une heureChronomètre VBA Excel
Problème php[Résolu] Problème d'affichage de répertoire
[VBA] Enregistrement feuille excel dans un répertoireProblème "undefined reference to setPixelV@16"
Ajout de ligne automatique sur excel 2010 - VBA[Résolu] Problème affichage tableau
Envoie automatique de mails via outlook en VBA[VBA] DATES
Plus de sujets relatifs à : problème de variables VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR