Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 391
Default please give an example of a class module.

be careful with your DIM statements!
You have

Private m_units, m_notional, m_libor, cvalue As Double
Private m_name, m_ticker As String
Private m_td, m_exdate, m_r1, m_r2, m_r3, m_r4 As Date

in this you assume m_units is double and mlibor is
Double. They are not, you have defaulted them to Variant.
M-name is variantand only the last date is Date.

You should have

Private m_units As Double, m_notional As Double, m_libor
As Double, cvalue As Double
Private m_name As String, m_ticker As String
Private m_td As Date, m_exdate As Date, m_r1 As Date,
m_r2 As Date, m_r3 As Date, m_r4 As Date


Patrick Molloy
Microsoft Excel MVP

-----Original Message-----
The following seems to work, if there are no wrong

inputtypes

Normal Module:

Public clsSwapi As New swapDB

Public Sub addswap()
Dim strMsg As String
Set clsSwapi = New swapDB
With clsSwapi
.addnumber = ActiveSheet.Range("B2").Value2
.addname = ActiveSheet.Range("B4").Value2
.addtd = ActiveSheet.Range("B6").Value2
.addexdate = ActiveSheet.Range("B8").Value2
.addunits = ActiveSheet.Range("B10").Value2
.addnotional = ActiveSheet.Range("B12").Value2
.addlibor = ActiveSheet.Range("B14").Value2
.addticker = ActiveSheet.Range("B16").Value2
.addr1 = ActiveSheet.Range("B18").Value2
.addr2 = ActiveSheet.Range("B20").Value2
.addr3 = ActiveSheet.Range("B22").Value2
.addr4 = ActiveSheet.Range("B24").Value2
strMsg = strMsg & .addnumber & vbCrLf
strMsg = strMsg & .addname & vbCrLf
strMsg = strMsg & .addtd & vbCrLf
strMsg = strMsg & .addexdate & vbCrLf
strMsg = strMsg & .addunits & vbCrLf
strMsg = strMsg & .addnotional & vbCrLf
strMsg = strMsg & .addlibor & vbCrLf
strMsg = strMsg & .addticker & vbCrLf
strMsg = strMsg & .addr1 & vbCrLf
strMsg = strMsg & .addr2 & vbCrLf
strMsg = strMsg & .addr3 & vbCrLf
strMsg = strMsg & .addr4 & vbCrLf
End With
MsgBox strMsg, vbInformation, "Your Class"
End Sub

ClassModule swapDB:

Private m_number As Double 'cant have Byte=Double or

convert !
Private m_units, m_notional, m_libor, cvalue As Double
Private m_name, m_ticker As String
Private m_td, m_exdate, m_r1, m_r2, m_r3, m_r4 As Date


Public Property Get addnumber() As Double
addnumber = m_number 'new swap #
End Property

Public Property Let addnumber(ByVal newnumber As Double)
m_number = newnumber
End Property

Public Property Get addunits() As Double
addunits = m_units 'new swap units
End Property

Public Property Let addunits(ByVal newunits As Double)
m_units = newunits
End Property

Public Property Get addname() As String
addname = m_name 'new swap name
End Property

Public Property Let addname(ByVal newname As String)
m_name = newname
End Property

Public Property Get addticker() As String
addticker = m_ticker 'new swap ticker
End Property

Public Property Let addticker(ByVal newticker As String)
m_ticker = newticker
End Property

Public Property Get addnotional() As Double
addnotional = m_notional 'new notional amount
End Property

Public Property Let addnotional(ByVal newnotional As

Double)
m_ticker = newnotional
End Property

Public Property Get addlibor() As Double
addlibor = m_libor 'new libor rate
End Property

Public Property Let addlibor(ByVal newlibor As Double)
m_libor = newlibor
End Property

Public Property Get addtd() As Date
addtd = m_td 'trade date
End Property

Public Property Let addtd(ByVal newtd As Date)
m_td = newtd
End Property

Public Property Get addexdate() As Date
addexdate = m_exdate 'expiration date
End Property

Public Property Let addexdate(ByVal newexdate As Date)
m_exdate = newexdate
End Property

Public Property Get addr1() As Date
addr1 = m_r1 'reset date1
End Property

Public Property Let addr1(ByVal newr1 As Date)
m_r1 = newr1
End Property

Public Property Get addr2() As Date
addr2 = m_r2 'reset date2
End Property

Public Property Let addr2(ByVal newr2 As Date)
m_r2 = newr2
End Property

Public Property Get addr3() As Date
addr3 = m_r3 'reset date3
End Property

Public Property Let addr3(ByVal newr3 As Date)
m_r3 = newr3
End Property

Public Property Get addr4() As Date
addr4 = m_r4 'reset date4
End Property

Public Property Let addr4(ByVal newr4 As Date)
m_r4 = newr4
End Property


(Mike) wrote:

someone please explain how to create a class in VBA
eg class named swap
Public swapdb As clsswap
Private m_number As Byte
Private m_units, m_notional, m_libor, cvalue As Double
Private m_name, m_ticker As String
Private m_td, m_exdate, m_r1, m_r2, m_r3, m_r4 As Date





Public Property Get addnumber() As Double
addnumber = m_number 'new swap #
End Property

Public Property Let addnumber(ByVal newnumber As Double)
m_number = newnumber
End Property
Public Property Get addunits() As Double
addunits = m_units 'new swap units
End Property

Public Property Let addunits(ByVal newunits As Double)
m_units = newunits
End Property
Public Property Get addname() As String
addname = m_name 'new swap name
End Property

Public Property Let addname(ByVal newname As String)
m_name = newname
End Property
Public Property Get addticker() As String
addticker = m_ticker 'new swap ticker
End Property

Public Property Let addticker(ByVal newticker As String)
m_ticker = newticker
End Property
Public Property Get addnotional() As Double
addnotional = m_notional 'new notional amount
End Property

Public Property Let addnotional(ByVal newnotional As

Double)
m_ticker = newnotional
End Property
Public Property Get addlibor() As Double
addlibor = m_libor 'new libor rate
End Property

Public Property Let addlibor(ByVal newlibor As Double)
m_libor = newlibor
End Property
Public Property Get addtd() As Date
addtd = m_td 'trade date
End Property

Public Property Let addtd(ByVal newtd As Date)
m_td = newtd
End Property
Public Property Get addexdate() As Date
addexdate = m_exdate 'expiration date
End Property

Public Property Let addexdate(ByVal newexdate As Date)
m_exdate = newexdate
End Property
Public Property Get addr1() As Date
addr1 = m_r1 'reset date1
End Property

Public Property Let addr1(ByVal newr1 As Date)
m_r1 = newr1
End Property
Public Property Get addr2() As Date
addr2 = m_r2 'reset date2
End Property

Public Property Let addr2(ByVal newr2 As Date)
m_r2 = newr2
End Property
Public Property Get addr3() As Date
addr3 = m_r3 'reset date3
End Property

Public Property Let addr3(ByVal newr3 As Date)
m_r3 = newr3
End Property
Public Property Get addr4() As Date
addr4 = m_r4 'reset date4
End Property

Public Property Let addr4(ByVal newr4 As Date)
m_r4 = newr4
End Property

Dim i As Byte
'i = 1
Public swapi As New swapdb

Public Sub addswap()
swapi.addnumber = Range("b2")
swapi.addname = Range("b4")
swapi.addtd = Range("b6")
swapi.addexdate = Range("b8")
swapi.addunits = Range("b10")
swapi.addnotional = Range("b12")
swapi.addlibor = Range("b14")
swapi.addticker = Range("b16")
swapi.addr1 = Range("b18")
swapi.addr2 = Range("b20")
swapi.addr3 = Range("b22")
swapi.addr4 = Range("b24")
end sub

what am i missing?

Thanks


.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Creating UDF by Class Module (Leo)? Leo Excel Discussion (Misc queries) 1 December 2nd 08 10:59 AM
CLASS MODULE & SIMPLE MODULE FARAZ QURESHI Excel Discussion (Misc queries) 1 September 7th 07 09:32 AM
Need some comments on my Utility_Move class module. jchen Excel Worksheet Functions 0 August 21st 06 07:05 PM
Userform with template class module problem Tom Ogilvy Excel Programming 0 July 17th 03 06:38 PM
how to declare a class module Kevin Excel Programming 5 July 15th 03 01:04 AM


All times are GMT +1. The time now is 11:21 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"