Bonjour,
Ce sujet est le contraire d'un post que j'ai pu voir sur ce site ou il s'agissait de determiner l'adresse de la cellule ou la fonction etait appelee (la reponse etant alors Application.Caller.Address si je ne m'abuse)
Dans le cas qui m'interesse, je souhaiterais connaitre dans quelle feuille se trouve la cellule passee en argument d'une fonction afin d'activer cette feuille lors de l'execution de cette fonction. Pour etre clair, voici la fonction en question:
Public Function OCCURRENCE(cellule As Range) As Integer
Dim chaine As String
Application.ScreenUpdating = False
Sheets("ASN Journaliers").Activate
With Sheets("ASN Journaliers")
chaine = cellule
col = cellule.Column
OCCURRENCE = 0
For I = 1 To .UsedRange.Rows.Count
If .Cells(I, col) = chaine Then
OCCURRENCE = OCCURRENCE + 1
End If
Next
End With
Application.ScreenUpdating = True
End Function
Si la fonction tourne dans une feuille differente de "ASN Journaliers", je suis obligee d'activer la feuille "ASN Journaliers" avec Sheets("ASN Journaliers").Activate afin d'obtenir le bon resultat. Dans ce cas particulier ca marche mais je souhaiterais generaliser ce code afin de prendre en compte le fait que l'argument "cellule" pourrait tres bien appartenir a une feuille differente de "ASN Journaliers". Si tel est le cas, je souhaiterais activer cette feuille. Donc il faudrait que je puisse par exemple determiner le nom de cette feuille qui viendrait alors remplacer la chaine de caracteres "ASN Journalier". Et le nom de cette feuille se situe precisement dans l'adresse de l'argument "cellule".
Merci d'avance pour votre aide