Fonction personnalisée
Bonjour,
Comment accéder à une fonction personnalisée à partir de n'importe quel classeur Excel ?
Salutations,
Dadams51
Bonjour,
Il y a de nombreuses variantes... plus ou moins répandues. Je donne la méthode courante.
Les fonctions personnalisées devraient être rassemblées dans un classeur prévu à cet effet (et dans un module standart (Module1)
Si on en a beaucoup (on y prend vite gout...) on peut prévoir de les dispatcher entre différents modules en fonctions de leur utilité. ("Main, Prg Fonct, Reg, Imp, Util, Dat, Cal...") et renommer ces modules en conséquence. (Mais cela pourra être fait au fur et à mesure)
Une fois toutes les macros (fonctions) rassemblées ce classeur de macros complémentaires devrait être "Enregistrer sous..." (depuis VBA) au format .XLAM.
Laisser Excel déterminer à quel endroit il l'enregistre.
Dans un cadre général on les baptise souvent "PERSO.xlam" mais on peut leur donner en fait n'importe quel nom :
En particulier dans le cas de fichier dédié ou le classeur de macros complémentaires peut constituer le véritable programme du classeur on peut bien l'appeler "BOULOT.xlam" ou "MonBeauSapin.xlam", peu importe. Il suffit que le classeur hôte connaisse le nom de sa macro complémentaire dédié et le tour est joué.
Une fois enregistré en .xlam le classeur "source" peut être fermé. (et Excel également)
En rouvrant Excel, dans l'onglet Développeur cliquer Compléments votre classeur doit y apparaître sous le nom que vous lui avez donné... (Perso, Boulot, Dodo...) une fois coché et validé. Toutes vos Macros et Fonctions sont maintenant disponibles pour tous les classeurs.
Les fonctions personnalisées sont visibles dans la liste des fonctions Excel à la rubrique Fonctions personnalisées (en dernier...)
Quand aux macros personnalisées, elles ne sont visibles que dans les Options d'Excel dans la rubrique personnalisation du ruban.
Cependant elles sont disponibles à tout moment dans le code... Il suffit de les invoquer par leur nom pour qu'elles soit reconnues comme des instructions natives d'Excel.
Une fois coché dans la rubrique Compléments d'Excel les macros (et fonctions) peuvent être visualisées (et modifiées) dans VBA Project. Attention si vous modifiez une macro complémentaire depuis VBA, vous ne devez pas oublier de sauvegarder vos modifications : Aucun message ne vous rappellera vos obligations !
Mais le plus souvent vous n'irez dedans que pour vous rappeler le nom exact de la macro que vous voulez utiliser. Aucun autre utilitaire de VBA ne permet de connaître le nom des macros qui y sont contenues, il est donc parfois nécessaire de se rafraichir la mémoire...
Voilà vous savez l'essentiel. Pour d'autres précisions YAKA demander.
A+
Bonjour à tous,
pour compléter galopin il faut enregistrer sous en .xlam sur tous les PC susceptibles d'utiliser ces fonctions.
Donc à tous tes correspondant ouvrant tes fichiers les utilisant, garde la version .xlsm pour ça (et pour tes évolutions, c'est plus simple).
eric
Bonjour,
Oui, c'est vrai. Je n'en ai pas parlé car je trouve que ça pollue un peu le débat. Et je ne m'en sers jamais...
Mais il est vrai que si on veut mettre à disposition d'autres utilisateurs ses propres macros, ou simplement les transférer sur un autre PC il faut bien les copier sur un classeur ordinaire. On peut le faire des le début, mais si on utilise beaucoup de macros et de fonctions complémentaires, l'inconvénient est qu'on a rapidement un peu de mal à s'y retrouver et à tenir tout ce petit monde à jour. (surtout si de plus on a une ribambelle de .xlam)
Je préfère donc travailler uniquement sur des xlam et les exporter quand c'est vraiment nécessaire.
Mais après tout, c'est une question d'habitude...
A+
Bonsoir Galopin et Eric,
J'ai suivi vos consignes mais j'ai un problème :
depuis VBA j'enregistre bien en "Macro complémentaire excel" soit .XLAM, ça marche puis je reviens dans le fichier source. Et je dois l'enregistré aussi ??? Soit 2 enregistrement pour un seul classeur ???
J'ai essayé plusieurs fois mais si je rouvre EXCEL, Développeur, Compléments je ne retrouve pas mon fichier...
Help me !
Dadams
Va jeter un oeil dans le centre de gestion de la confidentialité / Compléments, tu as peut-être des interdictions de cochées.
Par défaut tout est décoché.
eric
Bonsoir,
J'ai fini par trouver mon erreur : dans l'onglet développeur, je cliquait sur l'onglet "Compléments COM" et non sur "Compléments"...Donc ça marche, merci pour votre aide !
Dadams