Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser une fonction personnalisée

2 réponses
Avatar
Eric RENAUD
Bonjour,
J'ai une fonction personnalisée qui me renvoie le numéro de semaine
Public Function NOSEM(D As Date) As Long
D = Int(D)
NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) \ 7 + 1
End Function

Dans ma feuille cette fonction marche parfaitement. J'ai procédé à
l'enregistrement pour mettre cela dans du code VBA
Cela donne :
ActiveCell.FormulaR1C1 = "=NOSEM(RC[-1])"
Par contre lorsque mon code s'exécute et pose la formule dans la cellule
adéquate, la valeur dans la cellule qui m'est renvoyé #NOM? et non pas le
numéro de semaine.
Pourquoi ?

2 réponses

Avatar
LE CARRE Yannick
Bonjour Eric,

vérifie le format de ta cellule destination.
A mon avis, elle n'est pas au format DATE !

Yannick

Eric RENAUD a écrit dans le message :
O2F8t#
Bonjour,
J'ai une fonction personnalisée qui me renvoie le numéro de semaine
Public Function NOSEM(D As Date) As Long
D = Int(D)
NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) 7 + 1
End Function

Dans ma feuille cette fonction marche parfaitement. J'ai procédé à
l'enregistrement pour mettre cela dans du code VBA
Cela donne :
ActiveCell.FormulaR1C1 = "=NOSEM(RC[-1])"
Par contre lorsque mon code s'exécute et pose la formule dans la cellule
adéquate, la valeur dans la cellule qui m'est renvoyé #NOM? et non pas le
numéro de semaine.
Pourquoi ?




Avatar
r-bruno
bonjour Eric,
c'est incompréhensible, car ta macro fonctionne parfaitement !!!
Au pire, si j'applique la fonction sur une cellule vide, elle retourne 52.
Bizarre !
Bonne journée

Par contre lorsque mon code s'exécute et pose la formule dans la cellule
adéquate, la valeur dans la cellule qui m'est renvoyé #NOM? et non pas le
numéro de semaine.
Pourquoi ?