VBA Dates + Numéros de Semaines
Résolu
usdy
Messages postés
258
Statut
Membre
-
usdy Messages postés 258 Statut Membre -
usdy Messages postés 258 Statut Membre -
Bonjour à toutes et à tous,
j'aurais besoin de votre aide pour un p'tit souci en vba sur les dates :
'je déclare une date pour la date du jour (ça marche bien) :
maDate = Format(Now, "dd-mm-yy")
datedujour = CDate(maDate)
'je stocke le jour, le mois et l'année dans des variables (ça marche encore bien) :
jour_datejour = Day(datedujour)
mois_datejour = Month(datedujour)
annee_datejour = Year(datedujour)
'je récupère le numéro de la semaine correspondant à la date du jour ( fonctionne bien) :
semaine_du_jour = Format(datedujour, "ww", vbFirstFourDays)
'mon problème vient maintenant, je voudrais récupérer le numéro de seamaine correspondant
'au jour : 28/mois_datejour/annee_datejour, j'ai fait :
dateFinMois = Format(28, mois_datejour, vbUseSystemDayOfWeek)
semainefin = Format(dateFinMois, "ww", vbFirstFourDays)
si quelqu'un peut me donner un coup de main, ça serait super COOL !!!!
merci
j'aurais besoin de votre aide pour un p'tit souci en vba sur les dates :
'je déclare une date pour la date du jour (ça marche bien) :
maDate = Format(Now, "dd-mm-yy")
datedujour = CDate(maDate)
'je stocke le jour, le mois et l'année dans des variables (ça marche encore bien) :
jour_datejour = Day(datedujour)
mois_datejour = Month(datedujour)
annee_datejour = Year(datedujour)
'je récupère le numéro de la semaine correspondant à la date du jour ( fonctionne bien) :
semaine_du_jour = Format(datedujour, "ww", vbFirstFourDays)
'mon problème vient maintenant, je voudrais récupérer le numéro de seamaine correspondant
'au jour : 28/mois_datejour/annee_datejour, j'ai fait :
dateFinMois = Format(28, mois_datejour, vbUseSystemDayOfWeek)
semainefin = Format(dateFinMois, "ww", vbFirstFourDays)
si quelqu'un peut me donner un coup de main, ça serait super COOL !!!!
merci
Configuration: Windows XP Firefox 2.0.0.12
2 réponses
-
Bonjour,
Quelques exmeples de fonctions perso que j'utilise :Function Semaine(LaDate As Variant) As Variant ' Renvoie le numéro de la semaine pour le calendrier français (52 semaines) Dim i As Byte If IsDate(LaDate) Then i = CByte(DatePart("ww", LaDate, vbMonday, vbFirstFourDays)) Mod 53 If i = 0 Then i = 1 Semaine = i Else Semaine = Null End If End Function Function Trimestre(LaDate As Variant) ' Renvoie le trimestre de la date. ' Si des journées de décembre sont en semaine 1 de l'année suivante, alors ' ces dates vont dans l'année suivante en tant qu'éléments du trimestre 1 Dim i As Byte If IsDate(LaDate) Then i = Semaine(LaDate) If i = 1 Then Trimestre = 1 Else Trimestre = DatePart("q", LaDate, vbMonday, vbFirstFourDays) End If Else Trimestre = Null End If End Function Function DernierJour(LaDate As Variant) As Variant ' Renvoi le N° du dernier jour du mois If IsDate(LaDate) Then DernierJour = CByte(Day(DateSerial(Year(LaDate), Month(LaDate) + 1, 0))) Else DernierJour = Null End If End Function -
Re,
Function DateDernierJour(LaDate As Variant) As Variant ' Renvoi la date du dernier jour du mois If IsDate(LaDate) Then DateDernierJour = (DateSerial(Year(LaDate), Month(LaDate) + 1, 0)) Else DateDernierJour = Null End If End Function
;)