Add-in ajouté via du code : probèle avec bibliothèque
Bonjour à tous,
J'ai fait un complément en vba qui fait appel à des données contenues dans les feuilles du classeur "xlam" : quand c'est que du code vba, le démarrage d'excel est assez rapide, par contre, quand il y a des données contenues dans les feuilles du classeru "xlam" c'est plus long.
C'est pour celà que j'ai décidé de mettre dans un onglet personnalisé un bouton qui permet de "charger" ou "décharger" cette macro complémentaire pour ne pas avoir à la charger à chaque démarrage d'excel (ça ralentirai l'ouverture d'excel).
J'ai trouvé un bout de code qui fonctionne bien (il faut cependant indiquer préalablement l'emplacement de la macro complémentaire via "option" -> "complément" -> "atteindre", mais ça c'est pas bien grave).
Voilà le code :
Sub charge(control As IRibbonControl)
AddIns("complement_essai").Installed = True
End Sub
Sub decharge(control As IRibbonControl)
AddIns("complement_essai").Installed = False
End SubLa macro complémentaire est bien lancé, l'onglet personnalisé contenant tous les boutons est bien rajouté, cependant, quand je clique sur les boutons, les macros ne s'executent pas, et à la place j'ai une message d'erreurs :
"Impossible d'executer la macro 'Macro'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivée"
Quand j'essaye de lancer les macro depuis le code, j'ai un message d'erreur encore plus déprimant :
'Erreur de compilation.
Bibliothèque d'objet incorrecte ou contenant des réfénences à des définitions d'objets introuvable"
PAR CONTRE, si je ferme le classeur, que je réouvre excel, là, ça marche très bien.... je ne comprend plus rien...
Ce qui me parait bizarre, c'est que quand j'ajoute moi même la macro à la main via "option" -> "complément" -> "atteindre", ben les boutons lancent bien les macros, directement, sans aucun message d'erreur. C'est mon code pour monter les macros qui foire ?
Qu'elle est le problème ? je suis complètement perdue, je bloque depuis des jours là dessus.....
Merci pour votre aide, j'ai fais pas mal de recherches avant, mais je n'ai rien trouvé...
J'ai écris un roman, je pense que ça va peut être en repousser plus d'un, mais il fallait que j'explique en détail mon problème,
D'avance merci
bonjour,
Essaie :
AddIns.Add("blabla.xlam").Installed = TrueA+
Merci pour la réponse, mais j'ai essayé, et ça ne marche pas.
ça me marque ce message :
"erreur d'execution '1004'
Impossible de lire la proprieté Add de la classe Addins'
En fait, ma macro complémentaire est assez complexe : pas mal de userform, elle fait appel à des données contenues dans les feuilles du classeur du complément....
Du coup, je me suis dis que ça pouvais venir du fait qu'il y avait une erreur dans ma macro complémentaire.
J'ai donc essayé avec un macro beaucoup plus simple, qui affiche simplement bonjour, et là, avec le même code que j'ai mis dans mon premier message, ça marche.
Sub charge(control As IRibbonControl)
AddIns("complement_essai").Installed = True
End SubDonc l'ajout de la macro complémentaire via le code vba fonctionne bien... mais je ne vois toujours pas d'ou peut venir l'erreur dans ma macro complémentaire, surtout que celle ci marche impec quand je l'ajoute à la main.... alalala.... que de soucis
Bonjour,
En fait je n'ai pas fait de commentaires car ce n'est pas vraiment l'usage sur les forums... Cependant à la lecture de ton précédent post, je m'était fait également la même réflexion ! Ton complément n'est pas vraiment un complément : tout juste un classeur plus ou moins lié à un autre.
Jusqu'à preuve du contraire un complément ne contient que des macros et pas de feuilles, ni d'USF.
Il existe une propriété IsAddin dans les propriétés de ton ThisWorkbook est-elle = True ?
Le principal intéret d'une complémentaire dans les programmes complexes est de séparer le code des données. Ainsi tu peux modifier ton programme tranquillement sans avoir jamais besoin du classeur de données. Or d'après ton poste précédent ta complémentaire semble assez loin de ce portrait idyllique... De plus un USF ne doit rien arranger !
Je serais assez curieux de faire un peu une analyse complète de ton projet pour voir comment tu as monté tout ça, mais je suspecte que tu as arrangé ça à une sauce très ...personnelle !
A+