Bonjour,

J'aimerais programmer cet algorithme en VBA Excel mais je cale completement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Function retourne_temps_a_soustraire(ByVal Date_ancienne, ByVal Date_nouvelle) as Integer
 
Si entre Date_ancienne et Date_nouvelle, il y a eu un Samedi entre 11h00 et 23h00 alors retourne_temps_a_soustraire = 1
Si entre Date_ancienne et Date_nouvelle, il y a eu un Dimanche entre 11h00 et 23h00 alors retourne_temps_a_soustraire = 1
Si entre Date_ancienne et Date_nouvelle, il y a eu un Samedi entre 11h00 et 23h00 et un Dimanche entre 11h00 et 23h00 alors retourne 12h00, alors retourne 2
 
Si entre Date_ancienne et Date_nouvelle, il y a eu deux Samedi entre 11h00 et 23h00 et un Dimanche entre 11h00 et 23h00 alors retourne_temps_a_soustraire = 3
 
Si entre Date_ancienne et Date_nouvelle, il y a eu deux Samedi entre 11h00 et 23h00 et deux Dimanche entre 11h00 et 23h00 alors retourne_temps_a_soustraire = 4
 
Sinon retourne_temps_a_soustraire = 0
 
End Function


Exemple 1 :
Date_ancienne(code par un now()) = 39969.5833333333 (Vendredi 5/06 14h00)
Date_nouvelle(code par un now()) = 39973.4166666667 (Mardi 9/06 10h00)

Je veux obtenir : retourne_temps_a_soustraire = 2 (car il y a eu le samedi 6/06 entre 11h00 et 23h00 ET le dimanche 7/06 entre 11h00 et 23h00)

Exemple 2 :
Date_ancienne(code par un now()) = 39969.5833333333 (Vendredi 5/06 14h00)
Date_nouvelle(code par un now()) = 39971.375 (Dimanche 7/06 9h00)

Je veux obtenir : retourne_temps_a_soustraire = 1 (car il y a eu le samedi 6/06 entre 11h00 et 23h00)

Exemple 3 :
Date_ancienne(code par un now()) = 39969.5833333333 (Vendredi 5/06 14h00)
Date_nouvelle(code par un now()) = 39978.375 (Dimanche 14/06 9h00)

Je veux obtenir : retourne_temps_a_soustraire = 3 (car il y a eu le samedi 6/06 entre 11h00 et 23h00 ET le dimanche 7/06 entre 11h00 et 23h00) et le samedi 13/06 entre 11h00 et 23h00)


Merci pour votre aide