IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment écrire et distribuer un add-in Excel ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2009
    Messages : 85
    Par défaut Comment écrire et distribuer un add-in Excel ?
    Bonjour,
    J'ai un programme VBA très utile dans mon entreprise. J'ai ajouté des fonctions que j'ai programmées dans les menus Excel.
    Je souhaite distribuer ces fonctions, et que les utilisateurs puisse installer ces fonctions sous forme d'add-in, avec un programme d'installation.
    Comment faire un add-in ? Faut il le code en .NET plutôt qu'en VBA ? Comme le distribuer ?
    Merci pour votre aide !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut
    Bonjour,

    Avez-vous trouver la solution à votre problème?

    Cordialement.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2009
    Messages : 85
    Par défaut
    Non, je n'ai posté mon message que hier soir tard, et je n'ai pas encore trouvé !
    Si je dois repréciser ma question, c'est:

    Comment développer une fonctionnalité supplémentaire dans Excel, accessible par un nouveau menu, et distribuer cette nouvelle fonctionnalité avec un programme d'installation, pas forcément avec les fichiers add-in (j'ai pas trop creusé ça...) les .xla ou .xlam

    En VBA "classique", tout est ok, j'ai bien ajouté le menu supplémentaire, tout mon code fait ce que j'attends. Mais je veux en faire une appli "professionnelle".

    Merci !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut
    En ce qui me concerne, j'ai créé un add-in, en xlam (version 2007).

    Pour ce faire, j'ai tout simplement ajouté le code servant à créer mon menu à l'ouverture de mon classeur, et pour le reste, tout est dans des modules de classe et modules standard.

    Mon application ainsi créée, j'ai finalement enregistré une copie en xlam (xla version 2007), qui devient donc un complément complètement autonome, que l'on peut ajouter ou pas à Excel.

    Et cela fonctionne parfaitement de mon côté, et mon application est facilement distribuable.

    N'hésitez pas à me demander plus de précisions si besoin.

    Cordialement.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2009
    Messages : 85
    Par défaut
    Donc, si on veut installer ton addin sur un nouveau poste, on exécute juste le classeur xlam ?

    Quid de la confidentialité du code ? C'est un peu hors sujet, mais on peut faire un code caché ?

    Dernière question ? Si tu veux faire évoluer ton add-in, tu relivres un xlam ? Il écrase tout ? Comment ça marche ?

    Merci pour tout !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Par défaut
    Moi, j'utilise cette méthode, mais il y a certainement mieux... je me permets d'aller au plus simple.

    Lorsque tu créés ton application sous excel, tu protèges ton code via un mot de passe. Ensuite, tu enregistres une version de ton classeur en xlam (donc le code sera protégé via ton mot de passe) : te voilà avec un complément fait maison .

    Il ne te reste plus qu'à, pour le déployer dans les postes en questions, rajouter le complément (comme un quelconque autre complément que tu rajouterais), via le menu excel : OPTIONS EXCEL/COMPLÉMENTS/ATTEINDRE...

    N'hésites pas pour plus de questions.
    Cordialement.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut Et comment définir l'aide à l'utilisation de la fonction, comme pour celle des fonctions prédéfinies ?
    Citation Envoyé par Kramelix Voir le message
    Moi, j'utilise cette méthode, mais il y a certainement mieux... je me permets d'aller au plus simple.

    Lorsque tu créés ton application sous excel, tu protèges ton code via un mot de passe. Ensuite, tu enregistres une version de ton classeur en xlam (donc le code sera protégé via ton mot de passe) : te voilà avec un complément fait maison .

    Il ne te reste plus qu'à, pour le déployer dans les postes en questions, rajouter le complément (comme un quelconque autre complément que tu rajouterais), via le menu excel : OPTIONS EXCEL/COMPLÉMENTS/ATTEINDRE...

    N'hésites pas pour plus de questions.
    Cordialement.
    Bonjour,
    Merci pour ces conseils très avisés. Cela marche très bien.
    Par contre je ne sais pas comment définir l'aide d'utilisation des fonctions personnelles VBA enregistrées dans le classeur xlam, afin que l'utilisateur sur la feuille Excel voit au moins apparaître la liste des arguments d'entrée nécessaires à la bonne utilisation de la fonction personnelle choisie.
    Cela est-il possible et quel en est le format dans la macro VBA ?
    @+
    Paolo

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Par défaut
    Citation Envoyé par paoloadv Voir le message
    Bonjour,
    Merci pour ces conseils très avisés. Cela marche très bien.
    Par contre je ne sais pas comment définir l'aide d'utilisation des fonctions personnelles VBA enregistrées dans le classeur xlam, afin que l'utilisateur sur la feuille Excel voit au moins apparaître la liste des arguments d'entrée nécessaires à la bonne utilisation de la fonction personnelle choisie.
    Cela est-il possible et quel en est le format dans la macro VBA ?
    @+
    Paolo
    Ca y est, je viens de trouver. Une réponse est proposée au lien suivant:
    http://silkyroad.developpez.com/vba/fonctions/#LIII

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sur une base purement théorique, tu as quelque choix.

    1) En VBA :

    C'est un langage interprété uniquement. Pour un programme d'installation, tu vas devoir regarder à l'extérieur d'Office, vers un script VBS (ou un autre langage de script), un fichier batch ou vers PowerShell. Je ne sais pas s'il existe des installateurs pour des classeurs de macros Office. Et, surtout, si ton classeur est volumineux, tu dois savoir que Excel a toujours besoin de tous ses classeurs ouverts et chaque classeur en totalité (pas question de moitiés classeurs en mémoire vive). Cela peut être source de ralentissements, de plantages, de corruption de fichiers et de pertes de données quant Windows ne peut pas consacrer assez de mémoire vive à Excel. Par contre, dans un parc d'Office comprenant à la fois des versions 32 et 64 bits d'Office, tu es bloqué au niveau des contrôles ActiveX de VB6 (RichTextBox, ListView, TreeView et plusieurs autres) qui ne sont pas compatibles avec les Office à 64 bits

    2) En .net

    2a) Tu peux piloter Excel (presque) de la même façon que tu le ferais en automation comme avec Word par exemple. Ce n'est pas de l'automation à strictement parler, mais au niveau de la programmation c'est tout comme, avec quelques ajustements au niveau des objets.

    2b) Tu peux créer des dll .net compilées de diverses façons, avec (VS Community ou supérieur), ou sans VSTO et Visual Studio (Community et +) permet de créer des installateurs (2a ou 2b)

    2c) Avec les éditions Express de Visual Studio, tu peux avoir quelque chose d'analogue à 2b en utilisant NetOffice.

    2d) Tu peux aussi créer des fichiers Excel (Office, en fait) sans utiliser Excel

    Avec .net, c'est beaucoup plus facile de fonctionner avec des parcs hétéroclites d'Office (2003 à 2016 ensemble et/ou 32 et 64 bits ensemble)

    3) Excel supporte toujours les "macros xll". En fait, ce sont des programmes en C adaptés pour Excel et compilés.

    Pour faire tes propres fichiers d'aide, tu peux aller voir par là. En espérant que les liens de téléchargement fonctionnent toujours. Je ne les ai pas essayés. Pas nécessaire d'avoir Visual Studio.

    Pour Visual Studio

  10. #10

Discussions similaires

  1. [ASP.NET 2.0][C#] Comment écrire dans un fichier Excel ?
    Par Louisa dans le forum Accès aux données
    Réponses: 8
    Dernier message: 19/12/2012, 18h43
  2. Réponses: 3
    Dernier message: 18/07/2008, 16h03
  3. Réponses: 1
    Dernier message: 09/05/2007, 23h10
  4. Réponses: 6
    Dernier message: 20/02/2007, 10h42
  5. [VBA Excel] Comment écrire un code dans le ThisWorkBook ?
    Par WebPac dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo