Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment obtenir par code VBA le N° de ligne d'une procédure

2 réponses
Avatar
Claude AGUILA
Afin de remédier rapidement, notamment à distance, à une erreur renvoyée par
une routine d'erreur dans une procédure à l'intérieur d'une module, je
voudrai obtenir le n° de la ligne venant d'être lue et source de l'erreur
repérée par ma routine d'erreur.
Merci de m'indiquer si cela est possible avec VBA pour Excel97.

2 réponses

Avatar
anonymousA
Bonjour,

Pourquoi ne pas tout simplement laisser le programme se planter en
désactiver le gestionnaire d'erreurs et donc indiquer de lui-même où il
s'est planté ?
Ne marchera evidemment que si le projet VBA est déverouillé si tant est
qu'il soit verrouillé.

A+

Afin de remédier rapidement, notamment à distance, à une erreur renvoyée par
une routine d'erreur dans une procédure à l'intérieur d'une module, je
voudrai obtenir le n° de la ligne venant d'être lue et source de l'erreur
repérée par ma routine d'erreur.
Merci de m'indiquer si cela est possible avec VBA pour Excel97.


Avatar
popi
Bonjour à toi aussi Claude, (décidément les bonnes habitudes...;-)
Afin de remédier rapidement, notamment à distance, à une erreur renvoyée par
une routine d'erreur dans une procédure à l'intérieur d'une module, je
voudrai obtenir le n° de la ligne venant d'être lue et source de l'erreur
repérée par ma routine d'erreur.
Merci de m'indiquer si cela est possible avec VBA pour Excel97.
Voici une réponse que j'avais faite il y a environ 2 ans 1/2 à la même

question posée par un (ou une) Claude !

Sub identifie_ligne_erreur()
2: On Error GoTo popi_debog
3: MsgBox rien.Value / 5
4: Exit Sub
popi_debog:
6: nom_modul = Application.VBE.ActiveCodePane.CodeModule
7: textcode = Application.VBE.ActiveCodePane.CodeModule.Lines(Erl, 1)
8: textcodeseul = Right(textcode, Len(textcode) - 2)
9: MsgBox "Nom de macro : identifie_ligne_erreur " & vbCr _
& "Erreur à la ligne : " & Erl & vbCr _
& "Ligne de code : " & textcodeseul, vbInformation,
"Dans le
module : " & nom_modul
End Sub
'Conditions au bon fonctionnement:
'soit la macro est seule et en tête de module et numérotée soit toutes
'les lignes
'si plusieurs macros sont numérotées

J'avais rajouté à l'époque :
" Et comme je pense au dino, çà fonctionne aussi avec xl97 ;-
)" (Private Joke)

@+
popi