Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 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?
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 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