Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc sa brojem decimala u VBA

[es] :: Visual Basic 6 :: Pomoc sa brojem decimala u VBA

[ Pregleda: 1864 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Elite SAS
student

Član broj: 192392
Poruke: 7
*.res.warwick.ac.uk.



Profil

icon Pomoc sa brojem decimala u VBA15.06.2009. u 16:56 - pre 180 meseci
POzdrav svima,

Ja se bavim ekonomijom i potpuni sam pocetnik u programiranju. Medjutim treba da uradim neki projekat u VBA. U produzetku vam saljem koji sam napisao i koji radi u excelu.Medjutim trebalo bi da mi variabla war ima najvise dve decimale.POkusao sam to da uradim sa Math.round ali nije islo. Interesuje me da li neko zna sta i gde tacno (u kodu) da napisem da bi dobio war variablu samo sa dve decimale. Jako bi mi znacila pomoc. Veliki pozdrav i hvala unapred

Code:
Sub Button1_Click()
    Dim S As Double: S = Cells(5, 3).Value
    Dim r As Double: r = Cells(6, 3).Value
    Dim T As Double: T = Cells(7, 3).Value
    Dim sig As Double: sig = Cells(8, 3).Value
    
    Dim cap As Double: cap = Cells(9, 3).Value
    Dim ns As Double: ns = Cells(10, 3).Value
    Dim i As Long
    

If S <= 0 Or T < 0 Or sig <= 0 Then GoTo error_label

For i = 5 To 25
    
    Dim X As Double: X = Cells(i, 10).Value
    
    If X <= 0 Then GoTo error_label
    
    Dim PvX As Double:      PvX = X * Exp(-r * T)
    Dim sig_rt As Double:   sig_rt = sig * Sqr(T)
    Dim d1 As Double:       d1 = Log(S / PvX) / sig_rt + 0.5 * sig_rt
    Dim BS As Double
    
    Dim war As Double 'value of warrants
    Dim nw As Double 'number of warrants
    
        BS = S * Application.NormSDist(d1) - PvX * Application.NormSDist(d1 - sig_rt)
        
        war = BS - (cap / ns)
            
        nw = cap / war
        
        If BS <= 0 Then BS = 0
        
        If war <= 0 Then war = 0
        
        If nw <= 0 Then nw = 0
        
        
        Cells(i, 12).Value = war
        
        Cells(i, 17).Value = war
        
        Cells(i, 11).Value = nw
        
        Cells(i, 14).Value = BS
        
        
    Next i
 
 Exit Sub
    
error_label:

    Beep    'To annoy the user
    MsgBox prompt:="Error encountered: Certain values cannot be a negative " & Err & "  " & Error(), _
            Buttons:=vbCritical, _
            Title:="Problem"
    
End Sub


[Ovu poruku je menjao Aleksandar Vasic dana 15.06.2009. u 19:06 GMT+1]

[Ovu poruku je menjao Aleksandar Vasic dana 15.06.2009. u 19:06 GMT+1]
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Pomoc sa brojem decimala u VBA15.06.2009. u 18:58 - pre 180 meseci
Koristi Format funkciju
Code:
Dim broj As Double
broj = 14.76253442
Msgbox Format(broj, "0.00")

-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

Elite SAS
student

Član broj: 192392
Poruke: 7
*.res.warwick.ac.uk.



Profil

icon Re: Pomoc sa brojem decimala u VBA15.06.2009. u 19:21 - pre 180 meseci
Hvala Marko.
Ali problem je u tome sto bi ja hteo da mi se vrednost ove war variable ne ispisuje u message box-u vec u celijama (excel-a). Znaci kad izracuna war variablu da je onda zapamti kao vrednost sa dve decimale.

 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Pomoc sa brojem decimala u VBA15.06.2009. u 19:39 - pre 180 meseci
Ma to je samo primer... ali princip je isti... recimo
Code:
Cells(i, 12).Value = format(war, "0.00")

ili možeš da formatiraš samu varijablu
Code:
war = Format(war, "0.00")

a možeš da formatiraš i samu ćeliju u excelu
Code:
Cells(i, 12).NumberFormat = "0.00"

i onda će svaka vrednost koju upišeš u tu ćeliju poprimiti taj format... sve zavisi šta tačno hoćeš da postigneš.

-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

Elite SAS
student

Član broj: 192392
Poruke: 7
*.res.warwick.ac.uk.



Profil

icon Re: Pomoc sa brojem decimala u VBA15.06.2009. u 19:54 - pre 180 meseci
Hvala ti Marko definitivno radi ali se sad javio novi problem...loop


war = BS - (cap / ns)

war = Format(war, "0.00")

If war <= 0 Then war = 0

nw = cap / war



U ovod delu koda bih hteo da kazem da ukoliko je war<= 0 onda je i nw=0.


Hvala veliko
 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.dynamic.sbb.rs.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Pomoc sa brojem decimala u VBA15.06.2009. u 20:17 - pre 180 meseci
ne vidim nikakav problem u tome
Code:
If war <= 0 then nw = 0

ili ja nešto nisam dobro razumeo ? :)
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

Elite SAS
student

Član broj: 192392
Poruke: 7
*.res.warwick.ac.uk.



Profil

icon Re: Pomoc sa brojem decimala u VBA16.06.2009. u 00:19 - pre 180 meseci
Hvala Marko resio sam!!!
 
Odgovor na temu

generalelektronik
Zlatko Borojevic
Generalelektronik, privatno
Samac, RS, BiH

Član broj: 20087
Poruke: 23
213.196.69.*

Sajt: www.generalelektronik.ws


+1 Profil

icon Re: Pomoc sa brojem decimala u VBA18.06.2009. u 19:29 - pre 180 meseci
stoji war = BS - (cap / ns)


treba war = cdbl(format(BS - (cap / ns),"0.00"))
 
Odgovor na temu

miki987

Član broj: 208123
Poruke: 511
93.87.211.*



+5 Profil

icon Re: Pomoc sa brojem decimala u VBA20.07.2009. u 21:07 - pre 179 meseci
Pozdrav

Imam

Code:

Vreme_norma = (I3.Text * 14.5 / 60) / 60


a zelim ga prikazati u Label pod imenom Vreme_norma i da se rezultat definise kao vreme, dakle u formatu

npr.
Code:
1:40:02 



I3.Text da bude ovo "1" (sat)
14.5 da bude ovo 40 (min)
60 da bude ovo 02 (sec)

Pitanje , kako i da li uopste moze sa Format odnosno ovim kodom koji se pojavljuje u temi ili nekim drugim

[Ovu poruku je menjao miki987 dana 21.07.2009. u 16:04 GMT+1]
 
Odgovor na temu

[es] :: Visual Basic 6 :: Pomoc sa brojem decimala u VBA

[ Pregleda: 1864 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.