Bonjour,
J’ai développé une librairie (DLL) de fonctionnalités de calculs (en VB .NET) que j'appelle à partir de macros développées dans Excel 2013 dans un fichier XLA.
Tout a très bien fonctionné sous "Windows 7" jusqu’à présent. Par contre, cela ne fonctionne plus sous "Windows 10".
Les macros dans Excel 2013 sont toujours bien appelées car j'ai testé l'appel grâce à un point d'arrêt positionné au début de celle-ci.
Je rencontre des difficultés lors des appels des fonctions qui se trouvent dans la DLL externe et plus particulièrement lors de la déclaration de la classe contenant mes fonctions appelées dans ma macro Excel.
L’erreur que j’ai dans la macro, c’est: « <Variable objet ou variable bloc With non définie> » et le résultat du calcul dans le tableur Excel est « #VALEUR! ».
Voici l’extrait de code qui pose problème dans ma macro, où la variable « fnact » est la variable définie vers la classe « clsActuaire » dans ma DLL de fonctionnalités.
L'image sera certainement plus parlante:
Déclaration de ma classe:
With fnact indique « <Variable objet ou variable bloc With non définie> »
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim fnact As New clsActuaire
La classe « clsActuaire » est définie en VB .NET comme ceci (afin de pouvoir appeler plus loin la fonction « CD ») :
Voici comment je définis la DLL et les macros :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Option Strict Off Option Explicit On Imports System.Math Public Class clsActuaire Public Function CD(Optional ByVal DuAnnLimit As Short = 0, Optional ByVal DuMoiLimit As Short = 0, Optional ByVal Paiement As enuTyPai = 0) As Double
1. La DLL de fonctionnalités (développée en VB .NET) est enregistrée dans le système (Windows 10) avec l’instruction suivante :
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm /codebase "%APPDATA%\Ocx\EasyActLibrary.dll" /tlb:"%APPDATA%\Ocx\EasyActLibrary.tlb"
2. La librairie de fonctions est référencée dans le code de la macro (référence VBAProject) :
3. La référence du fichier XLA dans Excel (compléments) : « Easyactlibrary »
4. Lors de la rédaction de la formule, Excel retrouve bien la macro (elle est reconnue) :
Mais le résultat est « #VALEUR! » car la définition de la variable « fnact » n’a pas été possible (voir plus haut).
Tout cela fonctionne parfaitement sous Windows 7 depuis plusieurs années mais pas sous Windows 10.
Le problème semble être l’exécution en elle même.
Pourriez-vous m'aider à résoudre mon problème ?
Serait-ce dû à un problème de signature avec la librairie vu que la sécurité sous Windows 10 semble être beaucoup plus sévère ?
Est-ce dû à une restriction supplémentaire propre dans Windows 10 ?
Manque-t-il quelque chose dans mes déclarations ?
Je vous remercie d'avance de prendre le temps de me lire et pour votre aide.
Vincent
Partager