XL 2016 VBA - Gestion de Compléments

Dudu2

XLDnaute Barbatruc
Bonjour,

Est-il possible de faire cette manip via le code d'un classeur ?

Le problème qui motive cette question est le suivant:
En gérant par VBA les Compléments, lorsqu'on ajoute un tout nouveau fichier .xlam, le classeur ne le "voit" pas et donc on ne peut pas l' "installer" (en terminologie Excel), perso je préfère le terme "activer". Il faut fermer puis ré-ouvrir Excel (tous les classeurs) pour qu'il mette à jour sa liste de compléments (en ajout ou en suppression) et qu'elle soit accessible aux classeurs qui s'ouvrent.

J'ajoute que:
VB:
Application.OnTime Now + TimeSerial(0, 0, 2), "OpenMe"
Application.Quit

Sub OpenMe()
    MsgBox "Back"
End Sub
Fonctionne sur le plan de la ré-ouverture mais ne rafraichit pas la liste des Compléments comme le fait un fermeture / ré-ouverture manuelle car il n'y a de réelle fermeture d'Excel.

Merci par avance.
 
Dernière édition:

chris

XLDnaute Barbatruc
Re
Pour ma part je ne range pas les xlam dans le dossier prévu par microsoft mais dans un dossier de données afin qu'ils soient bien sauvegardés régulièrement comme les données.

La majorité des utilisateurs ne sauvegarde jamais les dossiers de l'arbo technique de C:
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Au final ça fonctionne. Dommage qu'il n'y ait pas de méthode AddIns.Delete mais ce n'est pas grave.

A toutes fins utiles, je mets le fichier pour ceux qui utilisent le répertoire des AddIns par défaut (Application.UserLibraryPath).
Pour utiliser un répertoire custom, suffit de modifier la fonction qui y fait référence avec le nom de répertoire ad hoc.

Edit: Fichier voir plus loin.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Un classeur plus abouti... La terminologie n'est pas aisée et j'ai essayé d'être aussi clair que possible dans les textes et boutons.
  • Il y a le classeur des macros: Toto.xlsm
  • Il y a le classeur Complément: Toto.xlam (ou TotoV12.xlam)
  • Il y a le complément: Toto (ou TotoV12)
  • Il y a le répertoire par défaut des Compléments Utilisateur (Application.UserLibraryPath)
La fonction RépertoireComplémentsParDéfaut() identifie le truc en question pour ceux qui auraient des particularités de stockage.

Edit: fichier supprimé, voir plus loin.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
je veux dire que
.addins.add fromfiles(......)
avec installed=true

ajoute bien et installe le xla(m)

mais les macro ne sont pas utilisable tant que la reference a ce vbproject n'est pas coché

c'est pas compliqué

et le pire dans tout ça c'est que je te l'ai déjà expliqué il y a 1 an et 16 jours
je le sais puisque j'ai gardé le fichier avec un classeur test que je t'avais fait
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
démonstration avec le fichier du 11/11/2021
on voit bien le xla present dans VBE quand je lance UseAddin

mais quand je lance une sub qui appelle la sub de l'addin elle ne fonctionne pas "fonction indéfinie" (et pour cause)
par contre dès que je vais activer la référence a ce xla la la sub fonctionne
demo.gif

j'ai bien sur enlevé la solution du code
tu va essayer de rechercher la discussion de novembre 2021 ( la solution s'y trouve)
comme ça tu t'en rappellera ;)
 

Statistiques des forums

Discussions
315 127
Messages
2 116 519
Membres
112 765
dernier inscrit
SIDIANW