Quelle procédure appelle ?

Résolu
Signaler
Messages postés
7
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2009
-
Messages postés
7
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2009
-
Bonjour,
sur VBE, est il possible de connaitre le nom de la procédure qui vient d'appeler l'autre procédure AAA ?
Merci

6 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
cette logique n'a rien a faire dans A

Sub B()
call A(Path B)
...
end sub

Sub C()
call A(Path C)
...
end sub

Sub A(Byref vsPath As String)
Workbooks.open (vsPath)
...
End Sub
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
pas simple d'exploiter la pile des appels, non ^^
Messages postés
7
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2009

ouais, me faut une bonne gestion du standard ! ;)

le truc c'est qu'en fonction de la procédure qui appel, je fais un traitement dans la procédure appelée (une simple condition du genre : si proc A appelle, alors ouvre tel fichier XL; si non si proc B appelle alors ouvre tel autre fichier XL)
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
va falloir passer par un paramètre, ou un flag global...
Messages postés
7
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2009

Peut etre avec un exemple ce sera plus claire :

Exple:
Sub B()
 call A
 ...
end sub

Sub C()
 call A
 ...
end sub

Sub A()
 If Sub B called me then
    Workbooks.open (Path B)
 ElseIf Sub called me then
    Workbooks.open (path C)
 End If
 ...
End Sub

Please help!
Messages postés
7
Date d'inscription
mercredi 26 novembre 2008
Statut
Membre
Dernière intervention
27 novembre 2009

Yess ca marche : merci bcp Renfield.

Si non une autre logique qui marche aussi :

Sub B()
 Call A("SubB")
 ...
End Sub

Sub C()
 Call A("SubC")
 ...
End Sub

Sub A(Caller As String)
 If Caller = "SubB" Then
    Workbooks.open (Path B)
 ElseIf Caller = "SubC then" Then
    Workbooks.open (path C)
 End If
 '...
End Sub