Bonjour,

Je suis en train de faire une fonction VBA qui me retourne le nombre d'heures entre 2 dates (en supprimant les week-end et jours fériés) pour ensuite insérer ce nombre dans ma table TEST.

Pour cela, j'ai une table Jours_travail où j'ai toutes les dates de 2012 à 2017 et à coté une colonne qui me dit si c'est un jour travaillé ou non. Voici la composition de ma table Jours_travail:

Jour (type date) | Jours_travailles (type text)

01/01/2012 | Non

02/02/2012 | Oui

Je sais que j'ai un problème de syntaxe dans ma requête Nb_jours déjà (mais j'arrive pas à l'écrire correctement)

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
29
Function Resultat(Date1 As Date, Date2 As Date) As Integer
 
Dim DifDate1 As Date, DifDate2 As Date
Dim Nb_jours As Integer 'Nombre de jours ouvrés entre Date1 et Date2 (récupération du résultat de la requête)
Dim Dif_heures As Integer
 
DifDate1 = 0
DifDate2 = 0
Dif_heures = 0
Nb_jours = 0
 
'Nombre de jours se trouvant entre les 2 dates et multiplication de ce nombre par 10 pour avoir le nombre d'heures travaillées entre les 2 dates
Nb_jours = "SELECT COUNT(*) FROM Jours_travail WHERE '" & Date1 & "' < Jour AND '" & Date2 & "' > Jour AND Jours_tavailles = 'Oui'"
Dif_heures = Nb_jours * 10
 
'Calculer le nbre d'heures travaillées pour Date1 et Date2
DifDate1 = DateDiff("h", Hour(Date1), 18) 'Nbr d'heures travaillées le jour de Date1
DifDate2 = DateDiff("h", 8, Hour(Date2)) 'Nbr d'heures travaillées le jour de Date2
 
'Addition des différents calculs
Resultat = Nb_jours + DifDate1 + DifDate2
 
End Function
 
Sub TEST2()
 
DoCmd.RunSQL ("UPDATE TEST SET `Mes résultats`= Resultat(Demand_Launch_date_Valid, Acknowledge_date_valid);")
 
End Sub