Fonction qui renvoie le nombre d'un jour donné de la semaine dans un mois donné

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Je recherche une fonction qui me permettrait de connaître le nombre d'un jour donné de la semaine dans un mois donné.
En supposant que cette fonction s'appelle : NbJSMois
et que nous comptions les jours de la semaine de la manière suivante :
Lundi = 1, Mardi = 2, ..., Dimanche = 7

Par ex. NBJSMois(4;1;2009) = 5

Il y a en effet 5 jeudis en janvier 2009.

Merci pour toute réponse.
 

job75

XLDnaute Barbatruc
Re : Fonction qui renvoie le nombre d'un jour donné de la semaine dans un mois donné

Re,

Voici donc une autre solution.

La formule :

Code:
=4+(MOIS(DATE(B4;B3;1)+MOD(B2-JOURSEM(DATE(B4;B3;1);2);7)+28)=B3)

Et traduite en VBA :

Code:
Function NBJSMois(jour As Byte, mois As Byte, an%) As Byte
Dim deb As Date, wd As Byte
deb = DateSerial(an, mois, 1)
wd = Weekday(deb, 2)
NBJSMois = 4 - (Month(deb + jour - wd + IIf(jour < wd, 7, 0) + 28) = mois)
End Function

J'ai un peu galéré en VBA à cause de la fonction Mod (que je n'utilise finalement pas).

Fichier d'hoerwind joint.

A+
 

Pièces jointes

ROGER2327

XLDnaute Barbatruc
Re : Fonction qui renvoie le nombre d'un jour donné de la semaine dans un mois donné

Bonjour à tous
Une autre :
_

attachment.php
Code:
[SIZE="4"][COLOR="DarkSlateGray"]=4+(JOUR(DATE(B3;B2+1;0))-JOURSEM(DATE(B3;B2+1;1-B1);2)>27)[/COLOR][/SIZE]
en B4.
_
_
Accessoirement,
Code:
[COLOR="DarkSlateGray"]="Nombre de "&CHOISIR(B1;"lundis";"mardis";"mercredis";"jeudis";"vendredis";"samedis";"dimanches")&" en "&CHOISIR(B2;"janvier";"février";"mars";"avril";"mai";"juin";"juillet";"août";"septembre";"octobre";"novembre";"décembre")&" "&B3[/COLOR]
en A4.​
ROGER2327
 

Pièces jointes

  • screenshot.jpg
    screenshot.jpg
    23.7 KB · Affichages: 75
  • screenshot.jpg
    screenshot.jpg
    23.7 KB · Affichages: 71
  • screenshot.jpg
    screenshot.jpg
    23.7 KB · Affichages: 69

job75

XLDnaute Barbatruc
Re : Fonction qui renvoie le nombre d'un jour donné de la semaine dans un mois donné

Re, salut Roger,

Plus simple en effet, bravo.

J'ai bien l'impression Roger que tu as attendu que j'envoie mon post. Si c'est ça quelle élégance :)

A+
 

ROGER2327

XLDnaute Barbatruc
Re : Fonction qui renvoie le nombre d'un jour donné de la semaine dans un mois donné

Bonjour à tous,
Bonjour job75
Il est correct que ceux qui suivent une discussion depuis son début aient la primeur des résultats...
Ceci dit, j'ai oublié la fonction en VB ce matin :
Code:
[COLOR="DarkSlateGray"]Function NBJSMois(jSem As Integer, nMois As Integer, An As Integer) As Integer
   NBJSMois = 4 - (Day(DateSerial(An, nMois + 1, 0)) - Weekday(DateSerial(An, nMois + 1, 1 - jSem), 2) > 27)
End Function[/COLOR]
Oubli réparé...​
Cordialement,
ROGER2327
 

Discussions similaires

Réponses
12
Affichages
943