Bonjour,

En ce moment je suis en train d implemeter un librairie COM avec VB.net ( VS2008) pour l'utiliser grace a du code VBA dans EXCEL 2003.

Cependant je suis confronte a de sacre probleme dans mon code VBA : je n arrive pas a envoyer des objets crees dans mon VBA vers ma libraire COM. Pour faire simple.
En VBA, Je cree une instance A_inst d une classe A_class de la librarie avec les donnes de la spreadsheet et qd j utilise A_inst lors la creation d une objet de la class B_class venant de ma librairie com, je me retrouve avec une erreur :
Run-time error '438'
Object doesn't support this property or method

Je donne le code VBA et VB.Net ci joint :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
'Code VBA
Private Sub init()
 
 Dim SubPV as ComLibrary.SubPV
 Set SubPV  = New ComLibrary.SubPV
 
 Dim LoObject As ComLibrary.Lo  
 Set LoObject = New ComLibrary.Lo
 
  'Erreur 438 ici ..
  SubPV.addAsset (LoObject )
End Sub
et le code VB.net correspondant dans la lib com

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Option Explicit On
 
'System
'Imports Microsoft.Office.Interop.Excel
Imports System
Imports System.Runtime.InteropServices
Imports System.Collections
Imports System.Collections.Generic
 
<ComClass(SubPV.ClassId, SubPV.InterfaceId, SubPV.EventsId)> _
Public Class SubPV
    Implements ICloneable
 
 public _lportfolio As List(Of Lo)
 
 Public Sub addAsset(ByVal elt As ComLibrary.Lo)
 
 
        _lportfolio.Add(elt)
 
 
    End Sub
 
End Class
J ai meme essaye d exporter un objet spreadsheet ( la feuille excel active) dans la libraire pour faire toutes les creations d instance et le traitement a l interieur pour miniser l utilisation de VBA mais je me retrouve avec type mismatch alors que j importe un object worksheets...

J ai l impression que VBA et VB.net COM lib ont du mal a communiquer sur le type des objets : Sur un meme objet chaque a un type different ...
pour un objet workbook ou worksheet ca devrait etre le meme et le passage en parametre d un tel objet devrait bien se faire. Pourtant dans mon code, c est pas le cas...


Je commence a perdre mon latin

Quelqu un aurait-il une idee sur ce probleme ?

Merci d avance
bsm