Date à partir d'un n° de semaine

jyver Messages postés 46 Date d'inscription dimanche 5 juin 2005 Statut Membre Dernière intervention 10 juillet 2007 - 27 sept. 2005 à 11:53
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 - 27 sept. 2005 à 21:54
Bonjour,
comment faire pour récuppérer le jour (ex: le 16) à partir d'un numéro de semaine (ex: sem 35) et de l'année (ex:2005). Merci d'avance

2 réponses

Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
27 sept. 2005 à 15:00
Je pense qu'un peut plus d'information serait bénéfique à la compréhention de ton problème !
Tu travail sur quel logiciel (Excel, Access,....) ?
Tu développe sous VB, VBA, VBNet, .... ?
Tu récupère ta donnée de qu'elle manière, quel et le format sous lequel est stocké ton numéro de semaine?
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
27 sept. 2005 à 21:54
Salut ce n'est pas de moi mais je pense que c'est ce que tu cherches.

'renvoie la date d'un jour donné d'une semaine donnée
'exemple : date du mardi de la semaine 24
'fs, mpfe

Function QuelleDateBis(Jour$, Semaine%)
Dim tabJours(), i As Byte, NumJour, PremierJour#, Lundi#

'numéro du jour Jour$ dans la semaine (1 à 7)
tabJours = Array("lundi", "mardi", "mercredi", _
"jeudi", "vendredi", "samedi", "dimanche")
For i = LBound(tabJours) To UBound(tabJours)
If UCase(tabJours(i)) = UCase(Jour) Then
NumJour = i
Exit For
End If
Next i

'tests d'erreur
If IsEmpty(NumJour) Then
QuelleDateBis = "#JOUR!"
Exit Function
End If
If Semaine < 1 Or Semaine > 53 Then
QuelleDateBis = "#SEMAINE!"
Exit Function
End If
If Semaine = 53 And Weekday(DateSerial(Year(Date) + 1, 1, 1)) < 6 Then
QuelleDateBis = "#SEMAINE!"
Exit Function
End If

'lundi de la semaine Semaine%
'(directement adapté de la fonction LUNDI de B Mazas)
PremierJour = DateSerial(Year(Date), 1, 1) If Weekday(PremierJour) 6 Or Weekday(PremierJour) 7 Then
'si le 1er janvier tombe un vendredi ou un samedi
PremierJour = PremierJour - Weekday(PremierJour) + 2
Else
PremierJour = PremierJour - Weekday(PremierJour) - 5
End If
Lundi = PremierJour + 7 * Semaine

'date du jour Jour de la semaine Semaine (retour -> string)
QuelleDateBis = Format(Lundi + NumJour, "dddd dd/mm/yyyy")
'date du jour Jour de la semaine Semaine (retour -> date)
' QuelleDateBis = CDate(Format(Lundi + NumJour, "dddd dd/mm/yyyy"))

End Function

Sub test()
MsgBox QuelleDateBis("mardi", 24)
End Sub

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
Rejoignez-nous