Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Rebonjour à tous,

Il y a essentiellement 5 semaines ISO 8601 différentes dans un mois, rarement 6 et exceptionnellement 4 s'il s'agit uniquement d'un mois de février de 28 jours dont le 1er jour est un lundi.

Il y a-t-il un moyen par formule ou fonction de savoir combien de "semaines ISO" entières (7 jours) et tronquées (< 7 jours) il y a dans un mois donné ?

Merci d'avance pour un tuyau.
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Buenas dias MagicDoctor 🙂,
Je t'ai décomposé le mode de calcul dans le fichier joint en formules. Après, à toi de voir comment tu les groupes suivant tes besoins 😛...
Adios 😎
 

Pièces jointes

Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonjour Magic Doctor,

en attendant les formulistes, une fonction personnalisée :

Code:
Function NbSemainesMois(madate As Date)
Dim d1 As Date, d2 As Date
Application.Volatile
d1 = DateSerial(Year(madate), Month(madate), 1)
d2 = DateSerial(Year(madate), Month(madate) + 1, 0)
NbSemaine = (DatePart("ww", d2, 2, 2) - DatePart("ww", d1, 2, 2)) + 1
End Function

bonne journée
@+

Edition : bonjour JNP
 
Dernière édition:
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonjour Magic Doctor, JNP, Pierrot,

En supposant une date entrée en A2 et lundi étant le 1er jour de la semaine :

Nombre de semaines entières du mois (il y a sans doute plus simple) :

Code:
=3+(MOIS(DATE(ANNEE(A2);MOIS(A2);1)+MOD(1-JOURSEM(DATE(ANNEE(A2);MOIS(A2);1);2);7)+27)=MOIS(A2))

Nombre de semaines partielles du mois :

Code:
=(JOURSEM(DATE(ANNEE(A2);MOIS(A2);1);2)>1)+(JOURSEM(DATE(ANNEE(A2);MOIS(A2)+1;0);2)<7)

Pour mémoire, 1er et dernier jours du mois :

Code:
=DATE(ANNEE(A2);MOIS(A2);1)
=DATE(ANNEE(A2);MOIS(A2)+1;0)

1er lundi du mois :

Code:
=DATE(ANNEE(A2);MOIS(A2);1)+MOD(1-JOURSEM(DATE(ANNEE(A2);MOIS(A2);1);2);7)

A+
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonjour,
j'ai un problème lié, mais n'est pas réussi à utiliser cette formule, pour résoudre mes difficultés.
Je travaille sur une prévision de demande (bières dans un bar). J'y ai détecté 3 périodes:
-Jour de la semaine ok
-Mois de l'année ok
-Numéro ISO de la semaine dans le mois (qui permet de savoir quand les gentils consommateurs ont reçu leur paye 😀)

Donc, l objectif, est connaître à partir d'une cellule date, le n° de la semaine de ce jour dans le mois. Merci pour votre aide
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Re MaxenceBR,

Bon le fil que j'ai indiqué n'est pas très très clair.

Alors voici la formule qui donne le numéro de semaine dans le mois de la date A1 :

Code:
=ENT(MOD(ENT((A1-2)/7)+0,6;52+5/28))-ENT(MOD(ENT((DATE(ANNEE(A1);MOIS(A1);1)-2)/7)+0,6;52+5/28))+1

Elle fait la différence des numéros de semaines ISO de la date A1 et du 1er jour du mois, et ajoute 1.

A+
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonjour à tous,
Salut Job 🙂🙂,

Une astuce de Roger pour se départir du choix cornélien entre le séparateur décimal point ou virgule :

Code:
=ENT(MOD(ENT((A1-2)/7)+[SIZE=5][B][COLOR=Blue]3/5[/COLOR][/B][/SIZE];52+5/28))-ENT(MOD(ENT((DATE(ANNEE(A1);MOIS(A1);1)-2)/7)+[SIZE=5][COLOR=Blue][B]3/5[/B][/COLOR][/SIZE];52+5/28))+1
A++
A+ à tous
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Re à tous 🙂,
Je m'étonne de l'absence de retour de MagicDoctor, qui d'habitude suit ses fils... J'espère que les cochons ou les volailles ne lui ont pas filé la grippe... Bonnne soirée à tous 😎
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonsoir chers amis 🙂 🙂 JCGL (toujours efficace) et JNP,

Malheureusement la formule que je viens de proposer ne marche pas pour janvier.

En effet le numéro de semaine ISO au 1er janvier peut parfois être 52 ou 53...

Il faut donc utiliser la fonction NO.SEMAINE, en chargeant la macro complémentaire Utilitaire d'Analyse :

Code:
=NO.SEMAINE(A1;2)-NO.SEMAINE(DATE(ANNEE(A1);MOIS(A1);1);2)+1

Une autre solution, que je trouve bien laborieuse, en comptant les lundis (1er jour de la semaine) entre le 1er jour du mois et la date étudiée :

Code:
=SOMMEPROD(1*(JOURSEM(DATE(ANNEE(A1);MOIS(A1);LIGNE(INDIRECT("1:"&JOUR(A1)))))=2))+(JOURSEM(DATE(ANNEE(A1);MOIS(A1);1))<>2)

A+
 
Dernière édition:
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonsoir tout le monde, bonsoir JNP,

Coucou mé révoilou!!

J'ai essayé les formules de Job75 et de JCGL et obtiens un résultat bizarre, mais peut-être me suis-je planté en traduisant la formule en espagnol...
Au départ ma question était tout autre, à savoir combien il y a de semaines ISO entières ou tronquées dans un mois donné.

Pour savoir quel est le N° de semaine ISO correspondant à une date donnée, je ne me casse pas la tête et utilise cette fonction que j'avais trouvée je ne sais où et qui marche, ma foi, très bien :

Function SemISO(dat As Date) As Integer
Dim a As Integer
a = Int((dat - DateSerial(Year(dat), 1, 1) + ((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
If a = 0 Then
a = SemISO(DateSerial(Year(dat) - 1, 12, 31))
ElseIf a = 53 And (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
a = 1
End If
SemISO = a
End Function

Mais des fonctions qui permettent de trouver le même résultat il doit y en avoir des kyrielles.

Non JNP je passe sans problème au travers de cet énorme bobard de grippe porcino-aviaro-qui-tue-que-les-cons. Il faut définitivement comprendre que quand dans une paranoïa on retrouve ce sympathique Donald Rumsfeld... et bien l'affaire est très sujette à caution !
Pour mémoire, la grippe espagnole (1918 / soi-disant d'origine porcine, mais des test à l'ADN auraient confirmé rétrospectivement une origine aviaire) a tué officiellement en quelques mois plus de 30 millions de personnes (l'Inde a été quasiment décimée) et certainement au moins 80 millions de personnes (il n'y aurait eu aucun cas en Chine... c'est bien connu, le virus de la grippe est incapable de franchir l'Himalaya...). Je pense qu'actuellement cette grippe médiatique aura tué beaucoup moins de gens que la scarlatine qui tue déjà peu ! Un équivalent de grippe espagnole surgirait aujourd'hui que ce seraient au moins 300 millions de personnes qui trépasseraient en quelques mois ! En attendant, le Tamiflu fait recette et notre ami Donald-sans-le-bec aussi ! C'est à croire que les gogos ne veulent pas disparaître !

Bonsoir à tous.
 

Pièces jointes

Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Bonjour à tous,

Job et moi répondions à MaxenceBR du post #6 en attendant ton retour

Entièrement d'accord avec toi pour les bénéfices empochés par LE labo...

A+ à tous
 
Re : Connaître le nombre de "semaines ISO" entières ou tronquées dans un mois

Je vous remercie tous pour vos informations. J'ai été sur un autre sujet du forum avec le lien que vous m'avez donné. J'ai pris la formule direct Excel qui y est la dernière.

> Utiliser la formule : si la date recherchée et en B4 par exemple
=ENT(MOD(ENT((B4-2)/7)+0,6;52+5/28))+1
>Dominique35

VBA, je comprends, mais je ne sais pas bien m'en servir, à l'école, c'est mon binôme qui faisait tout.
Enfin bon, ça marche et c'est ça l'essentiel. Merci, vous avez tous été très rapides.

Pour ce que vous dites de la grippe porcine:
anecdotes:
2002, Ben Ladden et son 11/9
2004, arme de destruction massive irakienne
2005(06 je crois), président Irannien "différent"
2007, Grippe aviaire
2008, crise économique
2009, grippe porcine

Chaque année, il faut bien s'inventer une crise ou truc du genre

Et sinon,je vais essayer de me balader sur votre forum qui me paraît fort intéressant
Bon XL à tous
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour