Calculer le nombre de jours de semaine entre deux dates, Excel VBA

Nous examinerons un programme dans Excel VBA qui calcule le nombre de jours de semaine entre deux dates.

Les jours de la semaine sont: lundi, mardi, mercredi, jeudi et vendredi.

Remarque: les dates sont au format américain. Mois d’abord, jours ensuite. Ce type de format dépend des paramètres régionaux de Windows.

1. Premièrement, nous déclarons cinq variables. date1 de type Date, date2 de type Date, dateToCheck de type Date, daysBetween de type Integer, weekdays de type Integer et i de type Integer.

Dim date1 comme dat1, date2 comme date, date à vérifier comme date
Dim jours Entre As Integer, en semaine As Integer, i As Integer

2. Nous initialisons quatre variables. Nous utilisons la fonction DateDiff pour initialiser la variable daysBetween. Cette fonction a trois arguments. Nous remplissons “d” pour le premier argument car nous voulons le nombre de jours entre date1 et date2.

JOURSEM= 0
date1 = Range("B2")
date2 = Range("B3")
daysBetween = DateDiff("d", date1, date2)

3. Nous devons vérifier pour chaque date entre date1 et date2 (y compris date1 et date2) si la date est un jour de semaine ou non. Si oui, nous incrémentons les jours de la semaine de 1. Nous utiliserons une boucle For Next.

For i = 0 To daysBetween

4. Nous utilisons la fonction DateAdd pour obtenir chaque date à vérifier. Cette fonction a trois arguments. Nous remplissons “d” pour le premier argument car nous voulons ajouter des jours, i pour le deuxième argument et date1 pour le troisième argument car nous voulons ajouter i jours à date1. De cette façon, Excel VBA peut vérifier chaque date entre la date1 et date2 commençant par date1. Ajoutez la ligne de code suivante:

dateToCheck = DateAdd("d", i, date1)

Exemple: pour i = 3, Excel VBA vérifie date1 + 3 jours.

5. Ensuite, nous utilisons la fonction Weekday (fonction intégrée) pour vérifier si dateToCheck est un jour de semaine ou non. La fonction Weekday renvoie 1 pour un dimanche et 7 pour un samedi. Par conséquent, nous n’incrémentons la variable weekdays que si Weekday (dateToCheck) n’est pas égal à 1 et différent de 7 (<> signifie différent de). Les lignes de code suivantes font le travail.

If (Weekday(dateToCheck) <> 1 And Weekday(dateToCheck) <> 7) Then
    weekdays = weekdays + 1
End If

6. N’oubliez pas de fermer la boucle.

Next i

7. Enfin, nous affichons le nombre de jours de semaine à l’aide d’une MsgBox. Nous utilisons l’opérateur & pour concaténer

(joindre) deux chaînes. Bien que les jours de la semaine ne soient pas une chaîne, cela fonctionne ici. MsgBox en semaine et “en semaine entre ces deux dates”

8. Placez votre macro dans un bouton de commande et testez-la.

Résultat:

  

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x