Nom du module et de la procedure en cours

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Creepy

XLDnaute Accro
Bonjour,

Je fait actuellement une gestion des erreurs dans mon code VB. j'essaie de faire quelque chose de transversale qui pourrait me servir dans tous mes projets.

Plutôt que de passer en paramètre le nom du module/Userform ou Feuille ainsi que le nom du Sub ou de la fonction à la main dans chaque code, je me dis que l'on peut être le récupéré directement depuis VBA avec un truc du genre application.vbe.activemodule.

Mais je n'y arrive pas !!

Quelqu'un aurait-il un lien, bout de code quipourrait m'aider ?

Merci d'avance

Creepy
 
Re : Nom du module et de la procedure en cours

bonsoir cher Creepy

J'espere que cet exemple pourra t'aider afin de retrouver la macro qui pose problème.

Code:
Sub ProcedureDeTest()
    Dim x As Long
    On Error GoTo Fin
 
    'Crée une erreur (division par 0)
    x = 5 / 0
 
 
Fin:
    Call ControleProcedureActive
End Sub
 
Sub ControleProcedureActive()
    'adapté dune procedure de JS
    Dim Lig As Long
    Dim NomProcedureActive As String
 
    With Application.VBE.ActiveCodePane 'recherche procedure en cours
        .GetSelection Lig, 0, 0, 0
        NomProcedureActive = .CodeModule.ProcOfLine(Lig, 0)
    End With
 
    MsgBox NomProcedureActive
End Sub


Sinon, une autre solution consiste à numéroter les lignes et utiliser le fonction ERL pour identifier la ligne qui pose problème

L'outil MZTools fait ça très bien:

MZ-Tools - Productivity Tools for Visual Studio .NET (VB.NET, C#), Visual Basic and VBA


Quelques infos sur la fonction ERL:

Ce lien n'existe plus



Bonne soirée
MichelXld
 
Re : Nom du module et de la procedure en cours

bonsoir à tous 🙂

hop j'en profite.

Michel, je connaissais le : .GetSelection Lig, 0, 0, 0

par contre je pensais que ceci renvoyait le nom de la procédure dans lequel se trouvait le curseur dans vbe.

qui n'est pas obligatoirement la procédure en cours.

me tromperais-je ?

merci d'eclairer ma lanterne.

salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour