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

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.
 

JNP

XLDnaute Barbatruc
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 :p...
Adios :cool:
 

Pièces jointes

  • Calcul semaines ISO.xls
    23 KB · Affichages: 219

Pierrot93

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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+
 

MaxenceBR

XLDnaute Nouveau
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 :D)

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
 

job75

XLDnaute Barbatruc
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+
 

JCGL

XLDnaute Barbatruc
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
 

JNP

XLDnaute Barbatruc
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 :cool:
 

job75

XLDnaute Barbatruc
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:

Magic_Doctor

XLDnaute Barbatruc
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

  • ISO.xls
    17.5 KB · Affichages: 104
  • ISO.xls
    17.5 KB · Affichages: 108
  • ISO.xls
    17.5 KB · Affichages: 105

JCGL

XLDnaute Barbatruc
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
 

MaxenceBR

XLDnaute Nouveau
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:

ROGER2327

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

Bonjour à tous
Puisque cette discussion ressuscite, je m'en mêle avec ce classeur plus anecdotique qu'utile. Mais qui sait ce qui est utile ?​
ROGER2327
 

Pièces jointes

  • Structure_des_mois.zip
    27.9 KB · Affichages: 100

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55