date et semaine

  • Initiateur de la discussion fabrice
  • Date de début
F

fabrice

Guest
j'aimerai connaitre, si il existe une fonction qui donne les date en fonctions du numero de la semaine, je m'explique

si je note semaine 15, excel me donne dans une autre cellule "du 5/04/04 au 11/04/04 "
 
M

michel

Guest
bonjour Fabrice


tu peux tester la macro ci dessous ( le dimanche en premier jour de la semaine ) ...il existe certainement une solution plus simple

Sub dateSelonNumSemaine()
Dim i As Integer, valAnnee As Integer
Dim J As Byte, valSemaine As Byte, X As Byte
Dim Sem As Date, Dte As Date
Dim Tableau(7)
valSemaine = InputBox("Saisir le numéro de semaine . ", "Semaine", 1)
valAnnee = InputBox("Saisir l'année . ", "annee", 2004)
For i = 1 To 367
Dte = "01/01/" & valAnnee
Dte = Dte + i - 1
Sem = Format(Dte, "WW", , vbFirstJan1)
If Format(Sem, "00") = Format(valSemaine, "00") Then
Tableau(J) = Format(Dte, "d mmmm yyyy")
J = J + 1
End If
Next i
'gestion semaine01
If Format(valSemaine, "00") = 1 Then
For X = 1 To J
If CDate(Tableau(X - 1)) + 1 <> CDate(Tableau(X)) Then
J = X
Exit For
End If
Next X
End If
MsgBox "Année : " & valAnnee & " Semaine : " & valSemaine & Chr(10) _
& Chr(10) _
& "Début : " & Tableau(0) & Chr(10) _
& "Fin : " & Tableau(J - 1)
End Sub



bon apres midi
michel
lapin4.gif
 
M

Monique

Guest
Bonjour,

Par formule, à tester :
="Du "&TEXTE(DATE(ANNEE(AUJOURDHUI());1;1)+(A1-1)*7-MOD(DATE(ANNEE(AUJOURDHUI());1;1)-2;7);"jj/mm/aa")&" au "&TEXTE(DATE(ANNEE(AUJOURDHUI());1;1)+(A1-1)*7-MOD(DATE(ANNEE(AUJOURDHUI());1;1)-2;7)+6;"jj/mm/aa")
 
F

fabrice

Guest
je vous remercie beaucoup tous les 2, mais monique j'ai encore un pb avec ta formule, je m'explique , je suis entrain de faire un tableau recaptulatif des heures effectuées dans un exercice, mais avec ta formule, semaine 52 c'est bien de l'année en cours , mais semaine 1 passe de 2004 a 2003
 
M

Monique

Guest
Re,

Cette formule te donne le lundi de la semaine n° x
Si la semaine démarre le lundi et que le 1er janvier n'est pas un lundi,
la semaine du 1er janvier démarre le dernier lundi de l'année précédente.
En 2004 (et 6 fois sur 7), la semaine 1 "démarre" en 2003

Ou si tu veux que la semaine 1 démarre le 1er janvier, il faudrait ajouter une condition dans la formule
du genre =SI(A1=1;DATE(ANNEE(AUJOURDHUI());1;1);sinon la formule)
(là, je n'ai plus le temps)

En plus, la fonction No.Semaine n'est pas fiable.
Si le premier jeudi de l'année tombe après le 4 janvier, la fonction No.Semaine donnera un résultat faux pour les Européens.
En Europe, la semaine n° 1 "doit" comporter au moins 4 jours.
La semaine du premier janvier a donc le n° 1 si le premier est soit un lundi, soit un mardi, soit un mercredi soit un jeudi.
Si le premier janvier tombe un vendredi ou un samedi ou un dimanche,
la semaine n° 1 débutera le lundi 4 ou le lundi 5 ou le mardi 6.

Il existe des formules pour améliorer la fonction No.Semaine
Tu as quelque chose là-dessus dans le classeur "Dates et heures"
<http://www.excel-downloads.com/html/French/fichiers/programmation-date_maj-1.htm>
 

Discussions similaires

Réponses
3
Affichages
293
Réponses
5
Affichages
346

Statistiques des forums

Discussions
312 492
Messages
2 088 925
Membres
103 984
dernier inscrit
maliko67