Bonjour,

Je souhaite réaliser une Dll pour VBA, pour l'instant je souhaite simplement envoyer des valeurs à une méthode de la Dll et qu'elle me renvoie le résultat.

J'ai suivi la page MS suivante :
https://learn.microsoft.com/en-us/do...ng-com-objects

J'ai bien coché l'option COM dans les préférences du projet.

Voici le code VB de mon test :
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
Imports System.Runtime.InteropServices
 
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)>
<ComVisible(True)>
Public Class ComClass1
 
#Region "COM GUIDs"
    Public Const ClassId As String = "E3C9AB19-7696-42A9-B934-F687E18C6E3A"
    Public Const InterfaceId As String = "12642CF7-5F75-437D-974D-58825811C40F"
    Public Const EventsId As String = "1E4CB5DE-9875-42BE-A8DE-EDFE4E49A04B"
#End Region
 
    Public Sub New()
        MyBase.New()
    End Sub
 
    <ComVisible(True)>
    Public Function Addition(valeur1 As Double, valeur2 As Double) As Double
        Addition = valeur1 + valeur2
    End Function
 
End Class
La Dll est créé mais il y a une erreur lors du regasm :

Nom : 2023-02-06_13h20_34.png
Affichages : 256
Taille : 8,6 Ko

VS2022 et la ligne de commande pour lancer le regasm sont lancé en mode administrateur.

J'ai lancé un MsBuild, en voici le résultat :

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
MSBuild version 17.4.1+9a89d02ff for .NET Framework
Les projets sont g‚n‚r‚s individuellement dans cette solution. Pour activer la g‚n‚ration en parallŠle, ajoutez le commutateur "-m".
La g‚n‚ration a d‚marr‚ 06/02/2023 13:24:02.
Projet "D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1.sln" sur le noud 1 (cibles par d‚faut).
ValidateSolutionConfiguration:
  G‚n‚ration de la configuration de solution "Debug|Any CPU".
Le projet "D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1.sln" (1) g‚nŠre "D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1\ClassLibrary1.vbproj" (2) sur le noud 1 (cibles par d‚faut).
GenerateTargetFrameworkMonikerAttribute:
La cible est ignor‚e "GenerateTargetFrameworkMonikerAttribute", car tous les fichiers de sortie sont à jour par rapport aux fichiers d'entr‚e.
CoreGenerateAssemblyInfo:
La cible est ignor‚e "CoreGenerateAssemblyInfo", car tous les fichiers de sortie sont à jour par rapport aux fichiers d'entr‚e.
CoreCompile:
La cible est ignor‚e "CoreCompile", car tous les fichiers de sortie sont à jour par rapport aux fichiers d'entr‚e.
GenerateBuildDependencyFile:
La cible est ignor‚e "GenerateBuildDependencyFile", car tous les fichiers de sortie sont à jour par rapport aux fichiers d'entr‚e.
CopyFilesToOutputDirectory:
  ClassLibrary1 -> D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1\bin\Debug\net6.0\ClassLibrary1.dll
G‚n‚ration du projet "D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1\ClassLibrary1.vbproj" termin‚e (cibles par d‚faut).
G‚n‚ration du projet "D:\MyDotNetProjects\repos\ClassLibrary1\ClassLibrary1.sln" termin‚e (cibles par d‚faut).
 
La g‚n‚ration a r‚ussi.
    0 Avertissement(s)
    0 Erreur(s)
 
Temps ‚coul‚ 00:00:00.61
J'ai fait pas mal de recherche sur le NET, j'ai dû passer à côté d'un truc.

Cordialement,