Ligne du VBE en cours d'exécution

dionys0s

XLDnaute Impliqué
Bonjour le forum

j'aimerais savoir s'il est possible de récupérer la valeur de la ligne en cours d'exécution dans le code en cours d'exécution. Un truc de ce genre là (mais la commande ActiveLine ou approchant n'existe pas...) :

VB:
Option Explicit
Option Base 1
Option Compare Text

Public MaLigneEnCours As Integer 'Faut pas déconner, j'ai moins de 32 767 lignes de code dans mon module

Sub MaMacro()

MsgBox Application.VBE.ActiveCodePane.CodeModule.ActiveLine    'Afficherait 9
MaLigneEnCours = Application.VBE.ActiveCodePane.CodeModule.ActiveLine    'Renverrait 10
MsgBox MaLigneEnCours 'Afficherait 10

End Sub

Je précise que ce n'est pas pour faire de la gestion d'erreur (donc sans utiliser Erl) et donc que la solution consistant à numéroter toutes les lignes à la main en début de ligne ne m'est à priori d'aucune utilité. Je souhaite récupérer le numéro de ligne tel qu'il s'affiche dans le VBE (cf. image Barre d'outil.jpg).

D'avance merci pour votre aide ^^
 

Hellboy

XLDnaute Accro
Re : Ligne du VBE en cours d'exécution

Ca date mon codage de VBE, mais j'ai ceci qui peut peut être te donner une piste.
De plus, ce code est écrit dans un module de classe.

strActiveLine = cmo.Lines(lngStartLine, 1)
strSelectLine = Workbooks(strNomWorkbook).VBProject.VBComponents(strMainWindow).CodeModule.Lines(lngStartLine, 1)

Bon courage !
 

dionys0s

XLDnaute Impliqué
Re : Ligne du VBE en cours d'exécution

Re,

Yohann, je parle de la ligne de code dans le VBE.

Hellboy, peux-tu me préciser ? C'est égal à combien ? C'est quoi cmo ? D'avance merci :)

EDIT : je me suis ma exprimé. Pour Hellboy

Je ne comprends pas grand chose à ton code, dans la mesure où tu utilises 6 variables et je ne sais pas comment elles fonctionnent ou ce qu'elles contiennent (notamment pour cmo).
 
Dernière édition:

dionys0s

XLDnaute Impliqué
Re : Ligne du VBE en cours d'exécution

Re,

bah ça je sais faire justement. Moi ce que je souhaite récupérer, c'est le numéro de la ligne de code dans le VBE qui est exécutée (c'est à dire l'équivalent du premier des deux paramètres de .Lines)
 

Hellboy

XLDnaute Accro
Re : Ligne du VBE en cours d'exécution

Re,

bah ça je sais faire justement. Moi ce que je souhaite récupérer, c'est le numéro de la ligne de code dans le VBE qui est exécutée (c'est à dire l'équivalent du premier des deux paramètres de .Lines)

Dim StartLine As Long
Dim EndLine As Long
Dim StartCol As Long
Dim EndCol As Long

Application.VBE.ActiveCodePane.GetSelection StartLine, StartCol, EndLine, EndCol
strSelectLine = Application.VBE.ActiveCodePane.CodeModule.Lines(StartLine, 1)

Faite un peu de Gym. avec ce code et c'est certain que vous arrivez à vos fins.
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
453

Statistiques des forums

Discussions
312 332
Messages
2 087 367
Membres
103 528
dernier inscrit
maro