ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using a matrix and class design (https://www.excelbanter.com/excel-programming/428708-using-matrix-class-design.html)

mikezx10

Using a matrix and class design
 

I am struggling with how to use a matrix(?) to feed my class
the code in sub Main doesnt work and i dont know how to fix it or how
to use the data passed to the AddEntry sub.

Any help greatly appreciated.


Class:
Private Entries As Collection
Private mAcctNo As String
Private mDebit As Integer
Private mCredit As Integer

Public Sub Main(data As Variant)
Dim i As Integer

For i = 1 To data.Length
AddEntry data(1)
Next i
End Sub
Private Sub AddEntry(entry As Variant)
Dim Je As JournalEntry
Set Je = New JournalEntry
Je.acctNo entry(1)
Je.Debit = entry(2)
Je.Credit = entry(3)
Entries.Add (Je)
End Sub
Public Property Let acctNo(val As String)
mAcctNo = val
End Property
Public Property Let Credit(val As Integer)
mCredit = val
End Property
Public Property Let Debit(val As Integer)
mDebit = val
End Property
------------------------------------------------
calling code:

Sub getstuff()
Dim vMatrix As Variant
Dim rngLastRow As Range

'a handle on the range we are working with
With ActiveSheet.Range("A:C")

'get the LastRow
Set rngLastRow = .Find(what:="*", searchorder:=xlByRows,
searchdirection:=xlPrevious)

'if the range contains data then populate our variant array
If Not rngLastRow Is Nothing Then
vMatrix = .Resize(rngLastRow.Row - .Row + 1, .Columns.Count)
End If

End With
Dim Je As JournalEntry
Set Je = New JournalEntry
Je.Main (vMatrix)

End Sub


--
mikezx10
------------------------------------------------------------------------
mikezx10's Profile: http://www.thecodecage.com/forumz/member.php?userid=331
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=98254


Simon Lloyd[_1140_]

Using a matrix and class design
 

mikezx10;351065 Wrote:
I am struggling with how to use a matrix(?) to feed my class
the code in sub Main doesnt work and i dont know how to fix it or how
to use the data passed to the AddEntry sub.

Any help greatly appreciated.



Code:
--------------------

'''Class:
Private Entries As Collection
Private mAcctNo As String
Private mDebit As Integer
Private mCredit As Integer

Public Sub Main(data As Variant)
Dim i As Integer

For i = 1 To data.Length
AddEntry data(1)
Next i
End Sub
Private Sub AddEntry(entry As Variant)
Dim Je As JournalEntry
Set Je = New JournalEntry
Je.acctNo entry(1)
Je.Debit = entry(2)
Je.Credit = entry(3)
Entries.Add (Je)
End Sub
Public Property Let acctNo(val As String)
mAcctNo = val
End Property
Public Property Let Credit(val As Integer)
mCredit = val
End Property
Public Property Let Debit(val As Integer)
mDebit = val
End Property
''------------------------------------------------
''calling code:

Sub getstuff()
Dim vMatrix As Variant
Dim rngLastRow As Range

'a handle on the range we are working with
With ActiveSheet.Range("A:C")

'get the LastRow
Set rngLastRow = .Find(what:="*", searchorder:=xlByRows, searchdirection:=xlPrevious)

'if the range contains data then populate our variant array
If Not rngLastRow Is Nothing Then
vMatrix = .Resize(rngLastRow.Row - .Row + 1, .Columns.Count)
End If

End With
Dim Je As JournalEntry
Set Je = New JournalEntry
Je.Main (vMatrix)

End Sub

--------------------
You would be better of posting all of your code (don't forget to

highlight it after posting and click the # at the top of your reply
window) as i don't see a decleration for data, also you use "AddEntry
data(1)" but it should be "AddEntry data(i)", you must also remember
that unless a Private sub is located within the same module as the one
calling it, it won't be available to the calling sub.


--
Simon Lloyd

Regards,
Simon Lloyd
'The Code Cage' (http://www.thecodecage.com)
------------------------------------------------------------------------
Simon Lloyd's Profile: http://www.thecodecage.com/forumz/member.php?userid=1
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=98254



All times are GMT +1. The time now is 07:28 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com