Récupérer le nom d'une macro

Bonjour le forum,

Une petite question dont je n'ai pas vraiment trouvé de réponse sur internet ou sur le forum.

Est-il possible de récupérer le nom de la macro en cours. L'idée est de gardé une trace dans le fichier final de la macro exécutée. Dans le cadre de changement de version cela permettrait de s’assurer que tout le monde utilise la bonne version. Voila c'est juste pour une histoire de traçabilité.

Existe il quelque chose du genre

nom_macro = Sub.name
Range("A1") = nom_macro

Ou est ce que je dois l’insérer dans le code "manuellement" et penser à le changer en cas de changement de version?

Merci pour votre aide.

Bonjour Philippe

En DevOps, on met un numéro de version au nom de l'outil utilisé

MonOutil v1.00.xlsm

Comme ça pour une modification mineur : v1.01

Modification majeure : v2.00

A+

Bonjour Bruno,

Je suis désolé, ça ne devait pas être très clair. Bien sûr l'incrémentation du numéro de version est fait comme vous l'indiquez.

Ce que je cherche ici c'est, savoir si un code VBA peut permettre de récupérer le nom de la macro (ici "ddPCR_TL_1mut_v1") du fichier VisualBasic (.bas) et le coller quelque part dans mon fichier Excel traité (ici appelé "DDPCR5_testErreur.csv").

Je vous ai mis une image en pièce jointe, peut être que ce sera plus parlant.

Une nouvelle fois merci pour votre aide.

recuperer le nom sub dans excel

Re,

Alors pourquoi vouloir faire ce genre de chose

et du VBA dans un fichier CSV ne pourra pas être enregistré

A+

Re,

Le VBA devrait, je pense être dans le code déjà existant (image de gauche).

Le fichier ne reste pas en .csv. Le fichier sort de la machine en .csv c'est vrai mais converti et enregistrer en .xlsm pendant la macro. Le nom du fichier test porte a confusion désolé.

Pour répondre à votre question en toute transparence, cette macro est utilisée pour mettre en forme des résultats de laboratoire sortis d'un automate d'analyse. Il permet au technicien.ne.s et biologistes d’interpréter rapidement des résultats qui étaient au début illisible car sortis en .csv. Le but de ma demande est de récupérer le nom de la macro sur les feuilles analysés afin de s'assurer que les résultats rendues aux biologistes ont été analysé avec la bonne version de la macro. Les biologistes peuvent donc interpréter les feuilles en étant sûr quelles contiennent tous les résultats attendus avec les valeurs seuils d'analyse à jour. Ainsi gardé une trace que la macro utilisé pour l'analyse de ces résultats est bien celle qui a été validée.

Bonjour Philippe,

Je ne comprends pas tout, mais c'est mieux

Alors, à ma connaissance, vous ne pouvez pas récupérer le nom de la macro qui s'exécute
En revanche vous pouvez très bien utiliser une constante String dans laquelle sera noté le numéro de version à chaque modification.

Et dans votre code, vous inscrivez cette constant sur la feuille

J'espère que ce sera clair pour vous

Bonjour Bruno,

Oui c'est en effet ce que je fais actuellement (ajout d'un : rang("x") = "nom_macro"). J'aurais préférer une méthode plus automatique pour diminuer le risque d'erreur en cas de changement de version. Mais votre réponse confirme une peu tout ce que j'ai peu voir sur le net jusqu’à présent.

Je vais me mettre une petite ligne de commentaire en majuscule au début de la macro pour me rappeler de changer le nom.

Je vous encore remercie pour toutes vos réponses.

Bonne journée

Re,

Comme la définition d'une constante se fait justement au dessus de la sub, vous ne pourrez que la voir et y penser 😜

Sinon de rien 😉 bonne journée ✌️

Bonsoir à vous deux !

Une proposition à mettre dans la macro dont on veut récupérer le nom, de préférence en tête de procédure afin d'être sur que le nom s'affiche dans la celle A1 avant une éventuelle erreur, soit le nom est inscrit directement soit il est mis en mémoire, et en fonction du déroulement, par une gestion d'erreur le message peut être différent... Bref une fois que l'on sait où l'on se trouve dans les procédures c'est plus simple de "jouer".

Le nom qui sort est le nom de la procédure "d'origine" si à l'intérieur il y a un "Call" celui-ci ne sera pas pris en compte.

Le code :

Sub LouReeD()
    Dim i As Long
    With Application.VBE.ActiveCodePane
        .GetSelection i, 0, 0, 0
        Range("A1") = .CodeModule.ProcOfLine(i, 0)
    End With
End Sub

Le fichier test :

Je rassure tout le monde : ce n'est pas de moi ! Ni même de GPT !

@ bientôt

LouReeD

Bonjour LouReeD,

De un premier temps, je vous remercie pour votre réponse.

J'ai essayer le code, placé au milieu de ma macro en gros et CA FONCTIONNE!!!!

Juste un petit détail pour ceux qui serait intéressés par cette solution et qui comme moi serait confronté au problème de "Erreur d’exécution "1004": L'accès par programme au projet Visual Basic n'est pas fiable". Voila la solution toute simple pour Excel 2016. Pour les autres versions l'idée est la même mais le chemin peu changer. Dans Excel, onglet "développeur", groupe "code", cliquer sur "Sécurité des macros" puis dans le paragraphe "Paramètres des macros", assurez vous que la case "Accès approuvé au modèle d'objet du projet VBA" soit cochée (voir image).

Un grand merci LouReeD pour votre aide qui je suis sûr intéressera plus d'une personne.

erreur projet visual basic non fiable

Bonjour

Réponse trop rapide, désolé. En effet il faut rendre Excel un peu plus vulnérable pour que ceci fonctionne et j'ai oublié de vous le dire...

@ bientôt

LouReeD

Bonjour LooReeD,

Il n'y a vraiment aucun soucis. J'ai pu très facilement trouvé la signification de l'erreur et l'action à effectuer. Ça me permet de continuer à apprendre et a garder les bons réflexes de recherche pour ne vous déranger que quand vraiment je ne trouve pas la solution (ce qui arrive déjà assez fréquemment ^^).

Vous vouliez me tester, vous pouvez le dire maintenant.

C'est ironique bien entendu.

Votre réponse était parfaite, elle à permis de m'aider là où j'était bloqué. Ce qui m'a permis de continuer.

Merci et à très bientôt à ne pas en douter.

Bonsoir,

pas de soucis de mon côté ! Seulement quand je manque de précision ou même quand je me plante lamentablement et bien je le dis !
Bon, peut-être que ce n'est pas vrai à 100%, mais souvent je fais un retour à mes interventions si je dois les corriger.
Et je remercie pour les retours éventuels !

Alors, merci de votre retour, vos remerciements et précisons pour le fonctionnement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "recuperer nom macro"