Créer une DLL et appeler les fonctions avec le VBA d'Excel

Bonjour à tous,

Je vous écris pour vous proposer l'adresse d'une page qui comporte trois tutoriels sur la librairie de classe (DLL) et qui répond aux questions suivantes :

* Comment protéger les codes sources VBA en les encapsulant dans une DLL (Librairie de Liaison Dynamique) avec Visual Studio 2015 ?

* Comment créer une DLL (développée en langage VB.NET (langage très proche du VBA) et non pas en C++) ?

* Comment appeler les fonctions d'une DLL (librairie de classe) en langage VBA Excel ?

* Comment déployer une production (fichiers Excel et librairies DLL) à l'aide d'un logiciel d'installation (Windows Installer) ?

Une librairie de classe peut également être utilisée pour piloter Excel via les fonctions de la DLL.

La page se trouve ici : http://joseouin.fr/logiciels/creation-dll-pour-excel-en-vb-net

Je suis heureux de pouvoir proposer à mon tour des tutoriels car j'ai découvert énormément de choses grâce aux tutoriels des autres et c'est ma manière à moi de les remercier aujourd'hui pour tout ce qu'ils m'ont appris.

Bonne journée à tous.

CCMJoe.

Bonjour Joe, et à tous,

Sympa de voir un tel enthousiasme, c'est une bonne source en effet.

Juste une remarque, le passage du VBA au VB.net nécessite un peu d'apprentissage, en effet il y a des différences entre ces 2 langages et ça peut générer des confusions chez un utilisateur non averti.

Par exemple le type "Object" n'a pas du tout la même signification dans l'un et l'autre langage.

Tout ça pour dire qu'un simple copier/coller de code n'est pas suffisant pour transcrire ses bibliothèques de fonctions VBA en dll, mais bien sûr ça reste possible pour un codeur confirmé (et le VB.net est plus riche que le VBA).

Bon week-end,

Pierre

Bonjour Pierrep56 et bonjour à tous,

Merci pour ton retour. Il est vrai que les deux langages ne sont pas exactement les mêmes et qu'un copier/coller ne suffit pas. L'idée c'est de proposer une solution qui permette de placer le code dans une DLL qui pourra être réutilisée pour d'autres projets. Par conséquent, le(la) développeur(euse) créera directement du code VB.NET une fois pour toutes qui sera appelé ensuite par des procédures VBA de quelques lignes.

Imaginez une DLL (bibliothèque, au sens premier du terme) qui comporte toutes les fonctions utiles pour plusieurs types de projets. Ensuite il ne reste plus qu'à les appeler pour un projet particulier : cela peut faire gagner pas mal de temps sur un développement.

Bonne continuation à vous tous.

CCMJoe.

Bonjour,

Bravo pour ton didacticiel que tu as eu la bonne idée de compléter par des captures pour ceux qui ne sont pas des adeptes des vidéos.

Et bravo aussi pour ton travail et le partage de JO-OBfuscator que j'avais remarqué il y a querques temps.

eric

Bonjour Eriiic et bonjour à tous,

Merciii pour ton message. Les vidéos prennent un temps fou à finaliser mais elles permettent de tout dire dans les moindres détails.

Bonne continuation à tous.

Joe.

Bonjour à tous,

Je complète ce sujet en vous proposant une application directe de l'utilisation d'une DLL pour stocker les fonctions et les utiliser dans un classeur en les appelant avec des procédures VBA. Il s'agit de XL-JO-Corrector qui est un classeur Excel (xlsm). Le code VBA n'est pas protégé afin que vous puissiez voir les différents appels de fonctions.

Que fait XL-JO-Corrector ?

XL-JO-Corrector est un classeur Excel gratuit permettant de corriger un ensemble de classeurs « étudiants » à partir du(des) classeur(s) « corrigé(s) ». Cet outil peut prendre en charge jusqu’à 4 sujets différents. Il est possible de choisir les cellules à tester en donnant un nom particulier à ces cellules (nommage des cellules).

De plus il effectue une copie des classeurs « étudiants » dans un dossier de votre choix en les renommant ainsi :

« NOM_PRENOM_GROUPE_Sujet_X.xlsx », où X est le numéro du sujet traité par l’étudiant.

Le package d'installation comporte des classeurs "exemples" (classeurs "étudiants" et classeurs "corrigés") qui permettent de tester les fonctionnalités de ce logiciel.

J'ai déposé l'ensemble des documents dans la partie "Téléchargement" d'Excel-Pratique et j'attends la réponse de Sébastien (mon dernier dépôt (JO-Obfuscator) a été refusé , j'espère que celui-ci sera accepté ).

Pour ceux qui sont trop impatients pour attendre, voici la page qui donne tous les détails (ainsi qu'une vidéo) :

XLMent vôtre,

Joe.

Bonjour à tous,

Je n'ai pas de chance, mon application XL-JO-Corrector vient d'être refusée par Sébastien :

Bonjour,

Votre application (ou cours) Excel n'a pas été retenue pour les raisons suivantes :

Je suis désolé car c'est une application intéressante mais les exécutables sont systématiquement refusés (comme indiqué dans la FAQ). Ce fichier est bien sûr le bienvenu sur le forum dans la partie Applications.

Cordialement,

Sébastien

Je comprends tout à fait qu'un exécutable soit refusé mais alors cela veut dire que toutes les applications qui inscrivent des DLL seront refusées.

Bizarre quand même car certains dépôts, eux, ne sont pas refusés, celui-ci par exemple :

https://www.excel-pratique.com/fr/telechargements/utilitaires/xlexe-no96.php

Il s'agit d'un super hyper gros exécutable pourtant... Et dans le "zip" de XlExe il y a un "exécutable" non ?

Oh mais que vois-je en ouvrant le "zip" ? Un bon gros fichier "exe".

cap exe

Bonne journée à tous,

XLMent vôtre,

Joe.

excel executable exe

Bonjour CCMJoe,

CCMJoe a écrit :

Je comprends tout à fait qu'un exécutable soit refusé mais alors cela veut dire que toutes les applications qui inscrivent des DLL seront refusées.

Bizarre quand même car certains dépôts, eux, ne sont pas refusés, celui-ci par exemple :

https://www.excel-pratique.com/fr/telechargements/utilitaires/xlexe-no96.php

Il s'agit d'un super hyper gros exécutable pourtant... Et dans le "zip" de XlExe il y a un "exécutable" non ?

Oh mais que vois-je en ouvrant le "zip" ? Un bon gros fichier "exe".

S'il y a quelques .exe dans les téléchargements c'est simplement parce qu'ils avaient été ajoutés AVANT la nouvelle version de la section des téléchargements (et des nouveaux critères d'acceptation).

Il n'est pas utile de venir te plaindre sur le forum à chaque fois qu'une application est refusée ...

Je te t'invite en passant à relire la charte et en particulier ce point :

charte a écrit :

• Les liens considérés comme publicitaires sont interdits dans les messages ainsi que dans les signatures (un lien discret est toléré), notez que vous pouvez faire un lien vers votre site par le biais du champ "Site Internet" du profil.

Tu as actuellement 37 messages et déjà 7 liens vers ton site (sans compter ta signature) ... La charte n'est pas respectée ... Tout comme pour les premiers .exe, j'ai décidé de te laisser les liens actuels mais tu n'es plus autorisé à créer de nouveaux liens vers ton site (au risque de les voir tous supprimés si tu ne joues pas le jeu).

Si tu veux aider les membres avec des tutos ou des applications, c'est très bien, tu peux les poster directement sur le forum, pas besoin de liens vers ton site, il y a tout ce qu'il faut sur le forum pour joindre des fichiers ou créer des tutos. Si au contraire tu le fais uniquement pour amener du trafic vers ton site, il faudra arrêter là ...

Cordialement,

Bonjour Sébastien,

Je suis content que tu aies pris un peu de temps pour me répondre.

Je reste cependant très étonné que quelqu'un comme toi qui a mis un site et un forum en place pour aider les autres puisse écrire un tel message à celui qui voudrait en faire autant. Toutes les applications et les tutoriels que je propose sont gratuits. Je n'ai pas de sponsors (et donc pas de pub rémunérées par des "clics") donc le trafic m'importe peu et j'ai souvent constaté que le trafic sur mon site est sujet à problèmes plutôt qu'autre chose.

Je n'ai fait qu'exprimer les faits et c'est tout. Il est vrai que les deux applications que j'ai proposées ont été refusées par toi. Dans ton message tu m'a dit "Vous pouvez toujours les proposer dans la partie "applications" :

Bonjour,

Votre application (ou cours) Excel n'a pas été retenue pour les raisons suivantes :

Je suis désolé car c'est une application intéressante mais les exécutables sont systématiquement refusés (comme indiqué dans la FAQ). Ce fichier est bien sûr le bienvenu sur le forum dans la partie Applications.

Cordialement,

Sébastien

Chose que j'ai faite et aujourd'hui tu me fais remarquer que j'ai mis des liens pointant vers mon site : c'est un peu obligé puisque l'hébergement sur Excel-Pratique n'est pas possible. Comment pourrais-je informer de la présence de tutoriels ou de classeurs Excel sans mettre de liens ?

J'ai voulu bien faire et si tu regardes les réponses à mes messages sur le forum tu constateras que les gens me remercient du temps que je passe à répondre à leurs questions.

J'en profite pour remercier tous les abonnés à ce forum pour leur compétence et leur dévouement.

Très bonne journée à vous tous.

XLMent vôtre

Joe.

Bonjour Joe,

Je reste cependant très étonné que quelqu'un comme toi qui a mis un site et un forum en place pour aider les autres puisse écrire un tel message à celui qui voudrait en faire autant.

Je suis malheureusement obligé de fixer des limites (tu serais probablement étonné de voir ce qu'il se passerait s'il n'y avait pas ces limites).

Comment pourrais-je informer de la présence de tutoriels ou de classeurs Excel sans mettre de liens ?

Dans l'idéal :

  • Application : publier dans "Applications" et joindre directement le fichier ou mettre un lien de téléchargement direct pour permettre aux visiteurs de télécharger directement l'application (mais si possible, joindre directement le fichier, cela réduit le risque de liens morts avec les années)
  • Tuto : publier directement le contenu dans "Cours et astuces" (exemple : https://forum.excel-pratique.com/cours-astuces/mise-en-forme-conditionnelle-t1029.html)

Par contre tu ne peux pas informer les visiteurs en créant un sujet et en ajoutant un lien pour les envoyer sur ton site comme tu l'as fait jusque-là, c'est contraire à la charte.

J'ai voulu bien faire et si tu regardes les réponses à mes messages sur le forum tu constateras que les gens me remercient du temps que je passe à répondre à leurs questions.

Je ne doute pas de tes bonnes intentions

Il est vrai que les deux applications que j'ai proposées ont été refusées par toi.

Pour en revenir à mon premier refus, je te demandais juste de supprimer la protection de lecture seule (c'est gênant pour les utilisateurs et ça fait partie des critères d'acceptation).

Si tu es disposé à supprimer cette protection, tu peux modifier la fiche et la re-proposer.

Si tu veux éviter qu'un utilisateur ne modifie le fichier, tu as d'autres alternatives : https://www.excel-pratique.com/fr/astuces_vba/empecher_enregistrement_fichier.php

Cordialement,

Bonjour Sébastien et bonjour à tous,

Merci pour ton message de réponse. Donc je peux mettre un lien si j'ai un classeur à partager avec les autres :

Dans l'idéal :

Application : publier dans "Applications" et joindre directement le fichier ou mettre un lien de téléchargement direct pour permettre aux visiteurs de télécharger directement l'application (mais si possible, joindre directement le fichier, cela réduit le risque de liens morts avec les années)

Bonne continuation à tous,

XLMent vôtre,

Joe.

Donc je peux mettre un lien si j'ai un classeur à partager avec les autres :

Oui tu peux mettre un lien direct vers un classeur (mais si le fichier fait moins de 500ko, il est préférable de le joindre directement au message).

Rechercher des sujets similaires à "creer dll appeler fonctions vba"