Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Power Query - extraire le nombre de semaine d'une année en fct d'une date

Flx1er

XLDnaute Occasionnel
Bonjour,
Je n'arrive pas à calculer le nombre de semaine qu'une année possède.

La norme ISO 8601, (https://fr.wikipedia.org/wiki/ISO_8601 cf chapitre numéro de semaine \ Système de numérotation \ Remarques et conséquences ) stipule :

La fonction Date.WeekOfYear, retourne la semaine d'une date.
Donc en passant comme paramètre "aaaa,12,28" à Date.WeekOfYear, je m'attendais a avoir le bon nombre de semaine. Eh bien non.

Pouvez vous m'aider a résoudre ce problème.
En vous remerciant
Cordialement

En pièce jointe un document de travail
 

Pièces jointes

  • Nbre semaine dans année 1.xlsx
    17.6 KB · Affichages: 5
Dernière édition:
Solution
Bonjour,

Voici une fonction qui le fait :

Vous savez créer une fonction maintenant Non ?
Sinon, demandez
cordialement

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Voici une fonction qui le fait :

Vous savez créer une fonction maintenant Non ?
Sinon, demandez
cordialement
 

fibled

XLDnaute Nouveau
Bonjour,

Voici une fonction qui le fait :


Vous savez créer une fonction maintenant Non ?
Sinon, demandez
cordialement

Bonjour Hasco

Quitte à passer pour un peu bête, je dois avouer ne pas savoir comment traduire ta proposition de code en Visual BASIC de base !
Pourrais-tu me donner le code VBA pour cette fonction qui me serait actuellement fort utile.

Je m’excuse d'avance pour le dérangement mais je te serais très reconnaissant si tu savais me donner un code directement (ou presque !) utilisable dans mes petite macro Excel

Merci d'avance
Frederic
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Cette fonction en langage M (langage dePower query) est la traduction d'une fonction vba qu'on trouvait partout sur internet lorsque la fonction excel NO.SEMAINE.ISO n'existait pas (excel < 2013) je crois qu'elle est à l'origine de Laurent Longres.

Si vous n'utilisez pas excel < 2013, vous n'avez pas besoin d'une fonction vba, la fonction de feuille NO.SEMAINE.ISO.

Inutile de réinventer la roue.

Mais si vous aimez ça :
VB:
Function NOSEM(D As Date) As Long
'Laurent Longre
   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

Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,
je me réponds à moi-même :
Cette fonction en langage M (langage de Power query) fonction vba qu'on trouvait partout sur internet lorsque la fonction excel NO.SEMAINE.ISO n'existait pas (excel < 2013). je crois qu'elle est à l'origine de Laurent Longre.

Non c'est pas celle là que je ai donnée en M dans le post 2, mais peu importe les deux fonctionnent.

Cordialement
 
Dernière édition:

fibled

XLDnaute Nouveau
Re,
je me réponds à moi-même :


Non c'est pas celle là que je ai donnée en M dans le post 2, mais peu importe les deux fonctionnent.

Cordialement
Merci à vous deux pour vos reponses.

In finé, je me suis débrouillé avec la fonction DatePart() , qui m'a permis de regrouper et de comparer des enregistrements correspondant à une meme semaine .

cordialement
Frederic
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…