Extraire un numéro de semaine

Bonjour à tous,

Je cherche à extraire le numéro de semaine d'une dtae de cellule qui est au format "AAAA-SS" (A=année, S=semaine)

J'utilise donc l'instruction suivante :

num_semaine = WorksheetFunction.WeekNum(.Range("M" & i))

Le message d'erreur 1004 : "Impossible de lire la propriété WeekNum de la classe WorksheetFunction s'affiche.

Je ne trouve pas la solution malgré avoir tenté pas mal de formulations (avec des Format(...), des CDate, des variables intermédiaires, etc...)

Quelqu'un aurait la solution ?

Merci !

Bonjour,

Edition : Il y a la fonction Isoweeknum qui fait partie du pack de fonctions XLP (que vous pouvez télécharger sur ce site). Sinon, en essayant peut-être :

num_semaine = Application.WeekNum(.Range("M" & i))

Il faut s'assurer que Mi soit bien une date cependant.

Cdlt,

Salut Adam,
Salut 3GB,

2020-18 ? C'est un format de date, ça ?
Si tel est le cas, ceci, sans doute...

num_semaine = cint(split(.Range("M" & i).value,"-")(1))

Et sans double-clic, 3GB : pas valable, ça ?


A+

Bonjour à tous,

tu ne peux appeler cette fonction excel car il existe une fonction vba pour ça, DatePart() :
numsem = DatePart("ww", dat1, vbMonday, vbFirstFourDays)
A noter qu'elle a qq bugs, le prochain étant le 29/12/2031. Contournement de ce bug :
If numSem > 52 Then If DatePart("ww", dat1 + 7, vbMonday, vbFirstFourDays) = 2 Then numSem = 1

N'oublie pas de changer l'année pour les semaines 1, 52 et 53 quand c'est nécessaire.
eric

Hello à tous,

Malheureusement, ça ne fonctionne pas non plus avec DatePart. Je pense que le format de date n'est pas valable.

Je vais opter pour la solution de Curulis, même si ça me paraît moins flexible. En tous cas ça fonctionne !

Merci pour votre aide !

Rechercher des sujets similaires à "extraire numero semaine"