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

Résolu
Signaler
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
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

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Essaie ça, chez moi ça marche :

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

Cordialement, CanisLupus
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
145
Date d'inscription
vendredi 11 janvier 2002
Statut
Membre
Dernière intervention
19 juin 2007
1
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
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
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
Messages postés
118
Date d'inscription
dimanche 12 octobre 2003
Statut
Membre
Dernière intervention
28 mars 2008

CanisLupus hummm... GÉNIAL !!! :) :)

rien d'autre a dire ...

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

Nightcourrier
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
LundiDay = dt - Weekday(dt, vbMonday) + 1

Daniel
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
encore plus court
LundiDay = dt - Weekday(dt, 0) + 1
toujours plus court

LundiDay = dt - (dt + 5) Mod 7

Daniel