Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

Dudu2

XLDnaute Barbatruc
Je ne sais pas pourquoi tu va bricoler dans les References du projet VBA pour les Compléments.

Perso, je les gère dans leur emplacement standard:
- GUI Excel avec les panneau Fichier / Options / Compléments
- VBA avec Installed = True / False
et ça fonctionne très bien.

Quand un complément est coché dans le GUI ou Intalled = True en VBA (ce qui est la même chose)


Il n'apparait nullement dans les References VBA ce qui ne l'empêche pas de fonctionner parfaitement.
 

Dudu2

XLDnaute Barbatruc
Après tu peux faire du "custom", stocker tes Compléments dans des répertoires à toi et là effectivement, il doit falloir passer par les References VBA.

Mais le fichier que j'ai fait reste dans le Standard pour les Compléments "Utilisateur".
 

Pièces jointes

  • Excel Compléments Utilisateur.xlsm
    63.1 KB · Affichages: 3

Dudu2

XLDnaute Barbatruc
En fait, non, via le GUI Fichier / Options / Compléments tu peux désigner n'importe quel répertoire à partir du moment où il contient un ".xla(m)" qui deviendra alors activable (installable) par ce même GUI (et VBA Installed = True / False).

Donc ça ne devrait jamais être nécessaire de passer par les References VBA.
Va falloir que j'adapte mon fichier. Encore !
 

patricktoulon

XLDnaute Barbatruc
Il n'apparait nullement dans les References VBA ce qui ne l'empêche pas de fonctionner parfaitement.


a ben si en plus tu ne différencie pas tes xla on est bien tiens

et d’après toi la ref vbaproject c'est quoi d’après toi ????

commence par faire les chose en ordre donne leur un nom a tes project xla
sinon tu aura 36 vbaproject dans tes références

mais comme d'habitude c'est moi le bricoleur hein
bon ben je te laisse a tes certitudes rendez vous dans un an et 16 jours
si j'ai gardé encore le fichier démo

je vais faire le test en mettant le xla dans le dossier addin pour voir si la ref s'active avec le installed
 

patricktoulon

XLDnaute Barbatruc
bon ben je viens de tester et j'avais raison même si le xla est dans le dossier des addins
le xla s'installe bien mais les macro ne sont pas dispos si la ref n'est pas activée
le xla dans le dossier des addins


allez à dans un an et 16 jours et je t'expliquerais comment on enclenche un xla par macro
 

Dudu2

XLDnaute Barbatruc
et d’après toi la ref vbaproject c'est quoi d’après toi ????


La Reference VBAProject, elle est pas cochée, j'ai pas besoin de la cocher, je vois pas le rapport.

le xla s'installe bien mais les macro ne sont pas dispos si la ref n'est pas activée
le xla dans le dossier des addins
Il n'est pas suffisant que le Complément soit dans les AddIns.
T'as pas compris ce que je t'ai dit.

Pour l'activer il faut utiliser:
- soit le GUI Excel avec les panneau Fichier / Options / Compléments et cocher la case
- soit avec VBA Installed = True



Après si tu veux taper dans les References du Projet VBA, c'est ton choix.
De toutes façons je suis en VBA et je sais ce que je dois faire.
 

patricktoulon

XLDnaute Barbatruc
Pour l'activer il faut utiliser:
- soit le GUI Excel avec les panneau Fichier / Options / Compléments et cocher la case
- soit avec VBA Installed = True
tu dois pas tester ce que tu fait toi
moi je te parle par vba
je te le redis un dernière fois parce que la vraiment ca me gonfle
installed oui tu voit le xla dans le vbe mais les macro ne sont pas dispo

pour info je l'ai retrouvé

un an après tu recommence

et je n'ai rien à corriger
ton (installed par vba tout seul) ne rend pas les macros du xla dispo c'est pas vrai

et un dernier conseil
perso quand je vois vbaproject dans mes référence le xla par à la poubelle et je suis sur que je ne vais pas etre le seul a te le dire et à juste raison je te laisse deviner les quelles
 

patricktoulon

XLDnaute Barbatruc
ben si tu me dis que pour toi installed =true suffit a avoir les macro du xla dispo dans le claseur dans le quel tu l'a installé alors tu a un office excel bien special

et si je m'énerve c'est par ce que tu me prend pour un citron c'est tout alors que je prends le temps de t'expliquer et pour le coup c'est pas nouveau en plus
 

patricktoulon

XLDnaute Barbatruc
et je suis certains que tu nomme pas tes projets (vu tes captures )
autrement dit si tu installe(true) x xlam dans un project ,tu va te retrouver avec 36 vbaproject dans tes références
non mais sérieux comment veux tu que cela fonctionne
 

Dudu2

XLDnaute Barbatruc
et si je m'énerve c'est par ce que tu me prend pour un citron
Non, je ne manque jamais de respect à qui que ce soit, mais si tu dis des trucs que je conteste, ben je le fais.
Après on verra, je dois modifier assez profondément mon fichier pour intégrer le répertoire de placement du Complément "Utilisateur".
 

Dudu2

XLDnaute Barbatruc
Environ("appdata") & "\Microsoft\AddIns\nom du complement.xlam"
Ça c'est le standard.
Mais via le GUI Excel des Compléments, on peut très bien stocker un .xla(m) dans le répertoire de son choix.
C'est ce que fait @chris (voir son Post #4) et je n'avais pris en compte cette option jusqu'à ce que je m'aperçoive que le GUI Excel des Complément le permet très facilement via le bouton <Parcourir>

Donc il faut que je le prévoies dans mon fichier mais ce n'est pas tout à fait simple à présenter... simplement !
 

patricktoulon

XLDnaute Barbatruc
VB:
Sub listeavecpath()
For Each AddInx In AddIns

MsgBox AddInx.Path & "\" & AddInx.Name

Next
End Sub
si tu le trouve pas c'est qu'il y a un blême par ce que chez moi ca liste tout les addins de tout les dossier ou sont mes addins et j'en ai plusieurs
facile a partir de la de te créer une variable tableau avec tout les path
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…