Bjr,
Je désire ajouter +1 a mes dates mais il faut également que cette nouvelle date soit un jour ouvrable.
J'ai créé une table de jour ouvrable.
Je désire donc qu'il passe a la cellule date d'apres lorsque j'ajoute +1.
Merci de m aider
Bjr,
Je désire ajouter +1 a mes dates mais il faut également que cette nouvelle date soit un jour ouvrable.
J'ai créé une table de jour ouvrable.
Je désire donc qu'il passe a la cellule date d'apres lorsque j'ajoute +1.
Merci de m aider
Si je comprends bien,
- tu es sur un formulaire,
- un contrôle lié à un champ date ('txtDate') contient déjà une date,
- un bouton ('btnIncrement') ou autre 'spin control' incrémente la date, en passant à la suivante dans ta table de jours ouvrables (table 'JoursOuvrables', champ [DateOuvrable])?
Le + simple semble quelque chose comme une fonction de domaine :
Ta table serait pas plus simple à gérer (et + petite) si tu faisais l'inverse ? en n'y mettant que les jours fériés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub brnIncrement_Click txtDate = DMin("[DateOuvrable]", "JoursOuvrables", "[DateOuvrable]> #" & Format(txtDate, "mm/dd/yyyy") & "#") End Sub
C'est ce qu'on fait d'habitude, dans les logiciels de planning (de chantier, gestion des temps de travail, d'agendas : Outlook a une liste des jours fériés, ...)
Ça serait un poil + compliqué ici, mais pas grand chose...
Bonjour,
Le fonction DateAdd() pour ajouter un jour (entre autres) à une date
Pourquoi faire une table des jours fériés mais dans ce cas je fais comment pour pas prendre en compte ces jours.
Merci
Parce que, dans cette table, tu ne mets que les jours fériés.Envoyé par beurnoir
À moins que ton logiciel soit pour des gens à la retraite , il y en a beaucoup moins, chaque année, que de jours de travail.
De plus, il existe des règles de calcul pour automatiser la plupart des jours fériés.
(Genre : "premier dimanche de printemps" ou similaire...)
P.S. : recherche "ouvrable" dans la FAQ, y a déjà : lundi de pâques + pentecôte + ...
Ne me les demande pas, mais cherche sur Internet, si ça t'intéresse...
Microsoft doit savoir, puisqu'Outlook les calcule tous.
Suffit de faire l'inverse :Envoyé par beurnoir
- tant que le jour suivant est un jour férié, tu passes au suivant
- on va inclure ici tous les samedis et les dimanches : ça t'évitera déjà d'avoir à les mettre dans cette table
Exemple (à tester, je ne l'ai pas fait, n'ayant pas de table des "JoursFériés") :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 '--------------------------------------------------------------------------------------- ' Procedure : brnIncrement_Click ' Date : 06/10/2005 ' Author : PapyTurbo - <a href="http://www.developpez.com" target="_blank">www.developpez.com</a> ' Returns : Le jour de travail suivant ' Descript. : À partir de lavaleur du contrôle date (txtDate), ' cherche le jour suivant qui ne soit ni un week end, ' ni un jour férié. ' Les jours fériés sont dans la table "JoursFériés", champ [DateFériée] ' Parameters: Aucun. Utilise le contrôle txtDate, et le modifie directement. ' Called : bouton "Jour de travail suivant" (btnIncrement) '--------------------------------------------------------------------------------------- Private Sub btnIncrement_Click() Dim WeekDay As Byte 'valeur : 1 à 7 'IsWorkDay sera vrai si la date suivante n'est ' ni un week end, ni un jour férié Dim IsWorkDay As Boolean Do txtDate = txtDate + 1 'Vérifie si ça tombe un week end, en prenant Lundi = 1 WeekDay = DatePart("w", txtDate, vbMonday) 'Samedi = 6, Dimanche = 7 If WeekDay < 6 Then 'Vrai si la date n'est PAS dans la table IsWorkDay = IsNull(DFirst("[DateFériée]", "JoursFériés", "[DateFériée]= #" & Format(txtDate, "mm/dd/yyyy") & "#")) End If Loop While IsWorkDay = False End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager