affichage nom procédure

  • Initiateur de la discussion Anne
  • Date de début
A

Anne

Guest
Bonjour à toutes et tous,

Voilà ma question :

Je fais une gestion d'erreur dans un dev VBA Excel (on error goto ...), et lors d'une erreur je fais un renvoie vers une procédure spécifique. Je voudrais savoir comment je peux affihcer (dans un msgbox) le nom de la procédure appelante.
Et je voudrais savoir également si je peux récupérer le nom d'un userform qui serait chargé en mémoire ?

Vous remerciant d'avance de vos réponses,

Anne
 
M

michel

Guest
bonsoir Anne

je ne suis pas sur d'avoir bien compris ta demande
j'espere que l'exemple joint pourra t'aider

la procedure de test

Sub ProcedureDeTest()
On Error GoTo Fin
'...
'une macro
'....
Fin:
Call ControleProcedureActive
Call NomUsfAffiche
End Sub


pour afficher le nom de la procedure en cours

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


pour afficher le nom de l'USF

Sub NomUsfAffiche()
Dim VbComp As VBComponent
Dim ObjComp As Object
'activer references microsoft visual basic for applications extensibilty 5.3
Set ObjComp = ThisWorkbook.VBProject.VBComponents
For Each VbComp In ObjComp ' recherche USF affiché
If VbComp.Type = 3 Then
If Application.VBE.SelectedVBComponent.Name = VbComp.Name Then _
MsgBox "Nom de l'USF : " & VbComp.Name
End If
Next
End Sub



bonne soiree
michel
 
A

Anne

Guest
Merci Michel,

Ta réponse me convient tout à fait, je crois, juste qu'il faut mettre les 2 lignes d'instructions :

"With Application.VBE.ActiveCodePane 'recherche procedure en cours
.GetSelection Lig, 0, 0, 0
NomProcedureActive = .CodeModule.ProcOfLine(Lig, 0)"
end with"

dans la procédure : ProcedureDeTest (dans mon cas dans toutes les procédures appelantes)

(et déclarer les variables comme variables publiques)
Anne
 

mdi

XLDnaute Nouveau
Re : affichage nom procédure

Bjr,

j'ai utilisé le bout de code ci-dessous dans une procédure:

"With Application.VBE.ActiveCodePane 'recherche procedure en cours
.GetSelection Lig, 0, 0, 0
NomProcedureActive = .CodeModule.ProcOfLine(Lig, 0)"
end with"

Mais lorsque je demande à VBA d'exécuter ma procédure principale dès l'ouverture du classeur (en mettant un code dans Thisworkbook), j'ai un message d'erreur N°91 (Variable objet ou variable de bloc With non définie)

Sauriez-vous d'où peut venir le problème?

merci de votre aide.
 

Discussions similaires

Réponses
3
Affichages
349
Réponses
17
Affichages
1 K

Statistiques des forums

Discussions
312 089
Messages
2 085 206
Membres
102 820
dernier inscrit
SIEG68