XL 2010 Origine appel fonction en VBA

mécano41

XLDnaute Accro
Bonjour,

Comment puis-je savoir si une fonction en VBA a été appelée depuis une feuille de calculs ou depuis un autre code VBA?
(au début de ma fonction, j'ai : Set PlgSel=Application.Caller et un traitement utile pour un appel depuis une feuille mais qui met évidemment une erreur si j'appelle la fonction depuis une Sub...)

... rien trouvé par recherche ni dans l'aide ...

Cordialement
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

Comment puis-je savoir si une fonction en VBA a été appelée depuis une feuille de calculs ou depuis un autre code VBA?
tu peux utiliser THIScell :
VB:
Function test() As String
    Dim ori As Range
    On Error Resume Next
    Set ori = Application.ThisCell
    On Error GoTo 0
    If ori Is Nothing Then
        ' appel depuis vba
    Else
        ' appel depuis excel
        Debug.Print ori.Address 'ref d'appel
        Debug.Print ori.Parent.Name 'nom feuille d'appel
        Debug.Print ori.Parent.Parent.Name 'nom classeur d'appel
    End If
    Set ori = Nothing
End Function
eric
 

Discussions similaires

Réponses
19
Affichages
555

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel