Récupérer les noms de modules ou on rencontre l'erreur

Bonjour à tous !

Je viens à vous car je ne trouve pas la solution à mon problème :

Je suis entrain d'implémenter un gestionnaire d'erreur sur mes fonctions et sub VBA.

Cela ressemble à ceci :

Sub Exemple()

On error GoTo ExempleErr

'Je fais des trucs cool

Exit Sub

ExempleErr :

Dim s as string

With Application.VBE.ActiveCodePane

.GetSelection Erl, 0, Erl, 0

s = .CodeModule.ProcOfLine(Erl, 0)

End With

Call ErrorReport(Erl, s, ExempleErr.Number, ExempleErr.Description)

Exit sub

End sub

Et voici la fontion ErrorReport :

Sub ErrorReport(a As Long, x As String, b As String, c As String)

s = x & " -- Ligne numéro " & a & " - " & "Erreur numéro " & b & " : " & c

Msgbox s

End Sub

Le but après étant d'archiver le nom de la fonction ou on a constaté l'erreur, le numéro de la ligne, et la description dans un second temps.

Erl a besoin de MZTools qui numérote les lignes de code (jusque là Erl fait correctement son boulot) mais le problème vient de cette ligne de ExempleErr pour récupérer le nom de la fonction :

s = .CodeModule.ProcOfLine(Erl, 1)

s prend le nom d'une autre fonction qui n'a rien à voir avec Exemple() alors que ce que je souhaite c'est qu'elle prenne la valeur "Exemple()"

J'ai compris juste après que MZTools numérote les lignes de code mais ne compte pas les espaces, alors que ProcOfLine prend en compte les espaces.

Comment faire pour que ProcOfLine(Erl,0) ne prenne pas en compte les escpaces ? ou que MZTools prenne en compte les espaces ?

Merci !

Rechercher des sujets similaires à "recuperer noms modules rencontre erreur"