cs_colinas
Messages postés1Date d'inscriptionsamedi 25 août 2007StatutMembreDernière intervention25 août 2007
-
25 août 2007 à 03:45
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 2008
-
25 août 2007 à 18:25
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
A voir également:
Connaitre l'adresse d'une cellule appelee par une fonction
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 25 août 2007 à 09:50
Je dirais à priori qu'il te faudra passer le nom de la feuille en paramètre.
La cellule que tu passe n'est pas une cellule d'une feuille bien définie, mais plutot l'adresse d'une cellule dans la feuille active. Si dans ton code tu cahnge de feuille active, ton paramètre cellule va pointé sur la même cellule mais de la nouvelle feuille active, et non pas de celle d'origine.
Maintenant, je dis peut-etre des bétises, je suis pas un expert d'Excel