-
VBA et application Excel
Bonjour,
Je cherche à packager un ensemble de fonction Excel dans une xla. Cette xla une fois lancée permettra aux utilisateurs d'accéder via un menu supplémentaire dans Excel à cet ensemble de fonctions.
Ces fonctions ne devant être accessibles qu'à partir de classeurs Excel spécifiques, je souhaite pouvoir gérer les évènement Excel tels que l'activation/désactivation d'Excel (par là j'entends le passage d'une application quelconque word, explorer, etc .. à Excel) et le changement de classeur actif afin de pouvoir activer/désactiver certaines fonctions du menu supplémentaire en fonction du classeur actif.
La piste sur laquelle je m'oriente actuellement serait le développement d'un module de classe, permettant de gérer Excel en déclarant celui ci en tant qu'objet.
Je me demandais si qqn avait déjà tenté l'expérience, voire si ce module existait déjà quelque part ...
Merci
-
Oui je peux désactiver aussi l'intégralité de la xla, mais je ne suis pas sur que celà réponde à mon problème.
L'activtion/désactivation de la xla sera toujours liée à un évènement. Le changement de classeur actif n'est pour l'instant pas un évènement que je peux gérer directement
Où alors, c'est un manque à mes connaissances (ce qui est possibe, je suis loins d'être un expert vb) et je veux bien plus d'infos sur cet évènement.
-
OK, je comprends ...
C'est de ma faute, j'ai oublié une précision importante. Le but de la xla est qu'il n'y ait absolument aucun code dans les classeurs. L'intégralité du code doit se trouver dans la xla.
Donc pas moyen d'utiliser ni la procédure WorkbookOpen ...
Il faut que j'arrive d'une façon ou d'une autre à obtenir un évènement qui ressemblerait à Excel_Activate (pour le passage d'une application X à Excel) et Workbook_Activate mais sans placer le code dans le classeur qui vient d'être activé.
Pour ça je pense vraiment qu'il faut que j'utilise ma xla pour gérer excel en tant qu'objet
-
En fait la xla est mon appli. Elle démarre Excel et se lance automatiquement sans ouvrir aucun classeur Excel. Donc une fois la xla lancée, Excel est ouvert sans aucun classeur et j'ai un menu supplémentaire.
Ensuite, je pense que la solution doit pouvoir etre trouvée si j'utilise un model de classe qui va gérer Excel. Je pense qu'il va aussi falloir que je déclare des évènements et que je les gèrent dans mon module de classe.
Une fois qu'Excel est devenu un objet pour la xla, c'est bon ... mais j'admet pecher un peu sur cette partie.
-
Si tu ne t'adresses qu'aux versions supérieures à XL97 (non compris)
c'est plutôt du coté d'un projet Addin de VB qu'il faut te tourner.
Cela a été spécialement conçu pour.
En gérant le Designer Connect, pour peu que tu ajoutes un object Workbook avec évènement,
tu pourras également gérer tous les évènements des différents classeurs.
En plus, le code étant compilé, il sera réellement protégé.