XL 2021 Excel/vba et vb.net: Propriété de type OBJECT "ingérable"

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

p'tit vieux

XLDnaute Occasionnel
Bonjour à tous
Je ne sais pas si parmi vous certains connaissent vb.net et COM avec VBA.
je suis en train de faire un portage de certaines parties d'un UDF VBA en vb.net.
Je suis débutant en .NET.
Mon problème est "simple" j'ai créé des classes en VB.Net et certaines propriétés doivent être des types Object. Pas le choix.
Devinez!!
Je bloque sur le fait que lorsque je veux passer une valeur à cette propriété de type Object je me fais "jeter".
pour exemple voici ce que j'ai fait:
<ComVisible(True)>
<ClassInterface(ClassInterfaceType.AutoDual)>
Public Property ValueMax As Object
Get
Return _ValueMax
End Get
Set
_ValueMax = Value
End Set
End Property
Quelqu'un peut il m'aider à résoudre ce souci?
Par avance merci à tous.
 
Solution
bonjour,
le problème n'est pas lié aux String mais au objet qui en vba.net sont des variants et des classes en VBA.

il faut bien considérer qu'en vb.net tout est classe. un string en est une.

il faudrait écrire
Code:
set obj.truc=123
ce qui n'est pas possible si truc est un object.

VB:
set obj.truc= me.textbox1
ça c'est ok

si on oublie les instructions com
<ComVisible(True), ClassInterface(ClassInterfaceType.AutoDual)>
ça fonctionne truc=123 mais on perd l'intestil.

il doit être possible de lui dire oublies le typage mais comme faire pour garder l'interopérabilité entre vb.net et VBA ?
bonjour,
en fait soit je ne mets pas
ClassInterfaceType.AutoDual
et ça fonctionne mais je perds l'intestil, soit je le mets et un object vb.net n'est plus un variant VBA.

j'ai tenté les interfaces vb.net mais rien y fait.
j'ai interrogé différents IA sans succès.

je continue à chercher car c'est intéressant.
 
Salut,
pourquoi tu veux retourner un objet ? . C'est quel genre d'objet ? Si c'est une classe il faut qu'elle soit AutoDual et Com visible. Exemple :
VB:
<ComVisible(True), ClassInterface(ClassInterfaceType.AutoDual)>
Public Class ClConfig
    Public Property Name As String
End Class
Côté VBA :
Code:
Dim mc As New MaClasse
Dim cfg As ClConfig
Set cfg = mc.Config
cfg.Name = "Test"
Nullosse
 
Je ne sais pas si parmi vous certains connaissent vb.net et COM avec VBA.
je suis en train de faire un portage de certaines parties d'un UDF VBA en vb.net.
Je suis débutant en .NET.
Pourquoi passer par VBA pour un UDF ? on peut faire l'UDF complet en vb.net avec ExcelDNA. ExcelDNA c'est un Addin dans lequel on met son code vb.net et on peut ainsi créer des fonctions UDF (avec intellisense ) , des fonctions que l'on peut appeler à partir du VBA .
 
bonjour,
le problème n'est pas lié aux String mais au objet qui en vba.net sont des variants et des classes en VBA.

il faut bien considérer qu'en vb.net tout est classe. un string en est une.

il faudrait écrire
Code:
set obj.truc=123
ce qui n'est pas possible si truc est un object.

VB:
set obj.truc= me.textbox1
ça c'est ok

si on oublie les instructions com
<ComVisible(True), ClassInterface(ClassInterfaceType.AutoDual)>
ça fonctionne truc=123 mais on perd l'intestil.

il doit être possible de lui dire oublies le typage mais comme faire pour garder l'interopérabilité entre vb.net et VBA ?
 
Dernière édition:
Bonsoir a tous
Les pourquoi?
Precision. C’est une dll utilisee dans mon udf pas l’udf lii meme.
Parce que des classrs de ma dll vb.net recoivent des datas varies et de plisieurs origines. La data peut etre un string, une date, une erreur. Etc. Voir un tableau ou meme une classe.
Donc pas le choix ll faut que la dll accepte.
Si on met autodual au moment de faore in Set ... on a une erreur vba "objet requis"
Si on l’autre ca marche mais on a plus la capacited’avoir lntellisense ni aito completion.ni fenetre espion.
Mais ca marche.
Bref je voulais tout le beure l’argent 😉
j’ai trouve ... je crois .... tout marche.
Je vous livre ca demain car je suis sur mon tel..
Vous dirai tout sur le . .. ma solution.
A demain
Merci encore.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
17
Affichages
4 K
Abdenour
A
G
Réponses
0
Affichages
1 K
guiboubou233
G
C
Réponses
1
Affichages
4 K
Conrad13
C
T
Réponses
11
Affichages
8 K
T
Réponses
2
Affichages
1 K
B
Réponses
4
Affichages
1 K
B
Retour