Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives


 
 
LinkBack Outils de la discussion
Vieux 07/04/2004, 19h03   #1 (permalink)
Anne
Guest
 
Messages: n/a
Par défaut affichage nom procédure

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
 
ANNONCES
Vieux 07/04/2004, 22h57   #2 (permalink)
michel
Guest
 
Messages: n/a
Par défaut Re: affichage nom procédure

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
 
Vieux 08/04/2004, 13h05   #3 (permalink)
Anne
Guest
 
Messages: n/a
Par défaut Re: affichage nom procédure

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
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 22h15.


(C) 2006 Excel Downloads