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 !