URGENT Expert demandé ( Date, trouver le début de la semaine )

Résolu
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008 - 27 janv. 2005 à 20:24
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 28 janv. 2005 à 00:12
Voici mon problème,

Je veux savoir d'Apres une date X quand était le début de cette semaine.

Ex :

On est le 27 janvier 2005 et je veux imprimer le rapport de la semaine ... Comment trouver le Lundi ?



LundiDay = Day(Now) - Weekday(Now, vbMonday) + 1

J'ai trouvé le 24 lundi good. Sauf que si Ex: vendredi le 2 octobre XXX .. la ca fonctionne plus il me retourne une valeur négative.

Avez vous une idée de comment coder cela sans tous faire a la main ? merci

Nightcourrier

6 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
27 janv. 2005 à 21:04
Essaie ça, chez moi ça marche :

MsgBox DateAdd("w", 1 - DatePart("w", "02/10/2005", vbUseSystemDayOfWeek), "02/10/2005")

Cordialement, CanisLupus
3
AdilELHASSOUNI Messages postés 145 Date d'inscription vendredi 11 janvier 2002 Statut Membre Dernière intervention 19 juin 2007 1
27 janv. 2005 à 20:46
voila une fonction qui peut faire l'affaire !!
Public Function DebutSemaine(valDate As String) As Date
Dim da As Long
Dim nbrj As Long
Dim varDate As Date
If IsDate(valDate) Then
varDate = CDate(valDate)
da = Weekday(varDate)
If da = 1 Then
nbrj = 1
ElseIf da > 4 Then
nbrj = 9 - da
Else
nbrj = 2 - da
End If
DebutSemaine = varDate + nbrj
Else
Err.Raise 12345, , "Valeur n'est pas de type Date"
End If
End Function

bonne chance
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 janv. 2005 à 21:14
Dim j As Integer
Dim dt As Date
Dim LundiDay As Date


dt = "02/10/2004"


j = 2 - Weekday(dt) If j 1 Then j -6
LundiDay = dt + j

Daniel
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
27 janv. 2005 à 23:18
CanisLupus hummm... GÉNIAL !!! :) :)

rien d'autre a dire ...

P.S Merci au autre, mais j'ai utilisé la plus courte.

Nightcourrier
0

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

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 janv. 2005 à 23:26
LundiDay = dt - Weekday(dt, vbMonday) + 1

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
28 janv. 2005 à 00:12
encore plus court
LundiDay = dt - Weekday(dt, 0) + 1
toujours plus court

LundiDay = dt - (dt + 5) Mod 7

Daniel
0