[VBA] Erreur 91 intermittente dans récup du nom de la procédure

F22Raptor

XLDnaute Impliqué
Hello,
J'utilise le script suivant pour récupérer le nom de la procédure :

Code:
Sub NomMacroActive()
    Dim i As Long
    With Application.VBE.ActiveCodePane
        .GetSelection i, 0, 0, 0
        MsgBox .CodeModule.ProcOfLine(i, 0)
    End With
End Sub
Source du code : [VBA-E] Recuperer le nom de la fonction en cours d'execution
MsgBox retourne donc "NomMacroActive"

J'ouvre ma feuille, je clique sur le bouton, et ça renvoie :
Erreur d'éxécution 91
Variable objet ou variable de bloc With non définie.

J'ouvre l'éditeur : je fais F8 sur la procédure, et ça fonctionne !
Je ferme l'éditeur, je clique sur le bouton, ça fonctionne !
Je ferme le classeur, le rouvre, je clique et .... Erreur 91 !!!

Ce GetSelection semble poser problème (c'est sur lui que s'ouvre l'éditeur quand je clique sur Débogage)

En creusant un peu : j'ouvre la feuille, je clique, ça plante.
J'ouvre l'éditeur VB, je clique, ça me donne le nom d'une procédure, mais pas forcément celle que je viens de lancer !
Il semblerait que le code renvoie en fait le nom de la procédure sur laquelle on se trouve dans l'éditeur.
Si l'éditeur n'a pas été lancé, ça ne marche pas, et si on n'est pas spécifiquement sur la macro en question, ça ne marche pas.

Une idée pour récupérer de manière fiable le nom de la procédure lancée ?
J'ai vu pas mal de choses sur le web, mais assez lourdingues ...
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : [VBA] Erreur 91 intermittente dans récup du nom de la procédure

Bonjour F22raptor le forum
est-ce que tu as bien lu le post sur développer.com??
je ne pense pas car autrement tu aurais un résultat satisfaisant je pense !!!
a+
Papou:eek:
 

Discussions similaires

Réponses
11
Affichages
418
Réponses
9
Affichages
144

Statistiques des forums

Discussions
312 027
Messages
2 084 762
Membres
102 657
dernier inscrit
Ferdy