David69400
XLDnaute Junior
Bonsoir le Forum,
Suite à échange avec Misange qui me conseille de poser la question sur le forum.
Pour avoir le numéro de semaine à la française, j'utilise donc la formule bien connue de Laurent :
en VBA, j'utilise NOSEM(Date) de Daniel Maher.
Ma question :
Je voudrais retrouver l'année que j'appelle ''calendaire" correspondant à mon n° de semaine ISO :
ex pour le 30/12/2013 on est en semaine ISO 1 de l'année "calendaire" 2014 mais de l'année "civile" 2013
la fonction ANNEE(30/12/2013) me donne donc 2013
y'a t il une formule en excel ? en vba ?
merci pour votre aide !
David
Suite à échange avec Misange qui me conseille de poser la question sur le forum.
Pour avoir le numéro de semaine à la française, j'utilise donc la formule bien connue de Laurent :
PHP:
=ENT((A1-(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)-JOURSEM(DATE(ANNEE(A1-JOURSEM(A1-1)+4);1;3)))+5)/7)
en VBA, j'utilise NOSEM(Date) de Daniel Maher.
PHP:
Option Explicit
Public Function IsoWeekNum(d1 As Date) As Integer
' Provided by Daniel Maher.
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
IsoWeekNum = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function
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
Ma question :
Je voudrais retrouver l'année que j'appelle ''calendaire" correspondant à mon n° de semaine ISO :
ex pour le 30/12/2013 on est en semaine ISO 1 de l'année "calendaire" 2014 mais de l'année "civile" 2013
la fonction ANNEE(30/12/2013) me donne donc 2013
y'a t il une formule en excel ? en vba ?
merci pour votre aide !
David