Using c# object in Excel VBA

  • Thread starter Thread starter Michael
  • Start date Start date
M

Michael

Hi All
I have writen an COM Object in C# to use it in Excel. This Object has a
Function that delivers a List of Users from a Database. My problem is now
that I get the List of Users but it is not posible to get one of the
Properties of the User. But when I create a new Object with
Set user = CreateObject("GuptaIntferface.UserVOCom")
I can see all Properties of this object. My Question is now how can I tell
VBA now that the objects in the List are the UserVOCOM Objects?
thx for help
Michael
 
I'm kind of stabbing the dark on this one as I've never worked with a C#
object. But have you tried:
msgbox user.propertyname
which would print the value of the propertyname you provide in a message box
on screen. Just put that line right after your Set user = CreateObject(....)
statement and give it a go.

I say that I'm stabbing at it, because that's the way you'd reference a
property in a typical object as:
Set myRange = Range("B1:B9")
msgbox myRange.Rows.Count
would show a 9.

If user is a list you may have to reference the item in the list as:
msgbox user(1).propertyname
 
thx for the Results
@Tim: Yes I allready added the reference
@JLatham: I had the some Idea like you with user(1).propertyname but then I
get the Error Message Runtime Error 424 Object necessary

I tried the following lines and all lines failed :(
user2 = Users(i)
objSheet.Range(cell).Value = Users(i).UserName
objSheet.Range(cell).Value = user2.UserName
thx for Help Michael

Here is my complete Code:

Sub Schaltfläche2_BeiKlick()
Set obj = CreateObject("GuptaIntferface.Wrapper")
Set objSheet = Worksheets("Tabelle1")
UserName = objSheet.Range("B1").Value
Password = objSheet.Range("B2").Value
workspace = objSheet.Range("B3").Value
mandant = objSheet.Range("B4").Value
resultnix = obj.InitWrapper(UserName, "", workspace, mandant)
resultnix = obj.RegisterHostaddress("Ibs.Infrastructure",
"http://localhost/Infrastructure.Host/")
result = obj.Test()
Users = obj.GetUserList()
Set user = CreateObject("GuptaIntferface.UserVOCom")
MsgBox user.UserName
For i = 1 To UBound(Users)
cell = "B" + CStr(i + 10)
user2 = Users(i)
objSheet.Range(cell).Value = Users(i).UserName
objSheet.Range(cell).Value = user2.UserName
Next i
MsgBox result
End Sub
 
one more Info it looks like he has a Problem with the Array
when I use a c# like this
public UserVOCom[] GetUserList()
VBA can't read the the Objects in the List but when I use
public UserVOCom GetUser()
he can read the properties from this object
Any Ideas on this?
thx
Michael
 
Hi All I have found a Solution! VBA can't handel a normal Array from C#! So I
have build a Class that handels the List and offers the Values via a get and
a set function

but thx again for the help

Michael
 
Back
Top