Appel d'une fonction VBA depuis une feuille
Bonjour
J'ai écrit le code suivant dans un module VBA :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Function NumColSemaine(strSheet As String, strPlage As String, Optional dDate As Date)
' Fonction NumColSemaine
' Renvoie le numéro de la colonne de la semaine passée. Par défaut, semaine
' courante (on fait référence à une plage de cellules, en l'occurrence
' "M2:ASJ2", contenant uniquement les dates des lundis :
' ...2 nov 2009, 9 nov 2009, 16 nov 2009, ...)
' Arguments :
' 1.*Feuille où se trouve la plage de dates
' 2. Plage de dates
' 3.(facultatif) Date dont on cherche la colonne correspondante Par défaut : aujourd'hui
'
Dim c As Object
Dim iCol As Integer
' Par défaut, date du jour : recherche colonne semaine actuelle
If dDate = 0 Then
dDate = Date
End If
' Les colonnes contiennent des dates de lundi, d'où soustraction de Weekday
Set c = Sheets(strSheet).Range(strPlage).Find(dDate - Weekday(dDate, vbMonday) + 1)
If c Is Nothing Then
iCol = 0
Else
iCol = c.Column
End If
Set c = Nothing
NumColSemaine = iCol
End Function |
Problème :
Quand j'appelle la fonction depuis la fenêtre exécution, tout fonctionne à merveille et l'objet c est rempli des données correspondant à la cellule trouvée.
En revanche, quand j'appelle la fonction depuis une feuille de calcul, c reste égal à Nothing et la fonction ne renvoie pas la valeur attendue.
Une idée, quelqu'un?