Probleme de date

cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 - 16 avril 2007 à 15:52
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 17 avril 2007 à 08:46
Bonjour,

J'ai encore un probleme avec les dates. Je voudrais savoir les codes pour qu'a partir d'une valeur au format "ww-yyyy" representant une semaine, je puisse recupéré le date exacte du vendredi correspondant a cette semaine.

Merci d'avance pour vos reponses.

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 avril 2007 à 16:25
WeekDay et DateAdd sont tes amis ici...

voici une fonction qui te donnera le Lundi de la semaine demandée.

y'a juste a ajouter 4, pour trouver le vendredi...

Private Function GetWeekFirstDay(ByVal vnWeek As Long, ByVal vnYear As Long) As Date
   GetWeekFirstDay = DateAdd("WW", vnWeek - 1, DateSerial(vnYear, 1, 1))
   GetWeekFirstDay = GetWeekFirstDay - Weekday(GetWeekFirstDay, vbMonday) + 1
End Function , ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 avril 2007 à 16:55
 Bonjour à tous

MaDate = "28/2007"    ' ...on veux récupérer le vendredi de la semaine 14

MsgBox FormatDateTime(DateAdd("d", 4, DateAdd("ww",Left(MaDate,2) -1 ,"01/01/" & Right(MaDate,4))), vbLongDate)

jean-marc
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 avril 2007 à 16:56
 Bonjour à tous....jean-marc

comprendre MaDate = "14/2007"    ..... essais
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 avril 2007 à 20:24
 Bonsoir

Bonsoir Renfield,
Ma proposition est nulle (testée sur 02/2011...fausse tandis que la votre = vendredi 14/01/2011 ....ok)

jean-marc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 avril 2007 à 23:21
Moi je n'ai pas (VB5) de FormatDateTime et je crains toujours les saisies trop rapides telles 8-2001 au liet de 08-2001)
Je ârs également du 1er janvier de l'année concerné, mais vérifie quel jour il commence, pour être sur de ârtir d'un vendredi en enlevant la valeur de ce jour à 5 (pour vendredi)

Private Sub Command1_Click()
   masemaine = "18-2007"
   annee = Mid(masemaine, InStr(masemaine, "-") + 1)
   semaine = Val(Left(masemaine, InStr(masemaine, "-") - 1)) * 7
   MsgBox DateAdd("d", semaine, DateAdd("d", 5 - Day("01/01/" & annee), "01/01/" & annee))
End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 avril 2007 à 08:46
Ou encore :

Private Sub Command1_Click()
  semaine = 28
  annee = 2007
  toto = DateAdd("ww", semaine, "01/01/" & annee)
  toto = toto + (6 - WeekDay(toto))
  MsgBox Format(toto, "dddd dd/mm/yyyy")
End Sub
0
Rejoignez-nous