Dans cet article, nous allons créer une fonction définie par l’utilisateur (UDF) pour vérifier s’il s’agit d’un jour férié à la date spécifiée, y compris ou excluant les samedis et dimanches en semaine.

Les données brutes pour cet échantillon se composent de dates dans l’ordre dans la colonne A. Nous trouverons s’il s’agit d’un jour férié à la date donnée, y compris ou excluant la semaine de congé le samedi ou le dimanche.

ArrowRawData

Nous avons précisé les dates de vacances dans la colonne A de la feuille «Vacances».

ArrowHolidayList

Nous avons créé la fonction personnalisée «IsHoliday» pour trouver le statut des vacances à la date donnée.

Syntaxe de la fonction

IsHoliday (date, y compris les samedis, y compris les dimanches)

InclSaturdays et InclSundays sont des paramètres optionnels. Par défaut, les deux ont la valeur TRUE. Pour changer le samedi et le dimanche en jours ouvrables, modifiez la valeur du paramètre respectif sur FALSE.

ArrowOutput

Nous avons utilisé la formule ci-dessous dans la cellule C9 pour trouver le statut de jour férié pour la date dans la cellule A9 en considérant le samedi comme un jour ouvrable.

IsHoliday (A9, FALSE)

Nous avons utilisé la formule ci-dessous dans la cellule D9 pour trouver le statut de jour férié pour la date dans la cellule A9 en considérant les samedis et dimanches comme des jours ouvrables.

IsHoliday (A9, FALSE, FALSE)

Nous avons utilisé la formule ci-dessous dans la cellule E9 pour trouver le statut de jour férié pour la date dans la cellule A9 en considérant les samedis et dimanches comme des jours fériés.

IsHoliday (A9)

Explication logique

Dans la fonction «IsHoliday», nous vérifions d’abord si la date donnée dans le paramètre existe dans la liste de vacances spécifiée. Si la date existe dans la liste des jours fériés, renvoyez «Vacances» en sortie. Si la date n’existe pas dans la liste des jours fériés, vérifiez si la date indiquée est un samedi ou un dimanche. En fonction du paramètre d’entrée fourni, vérifiez s’il faut inclure ou exclure un samedi ou un dimanche comme jours fériés.

Explication du code

Set RngFind = Worksheets (« Holidays »). Columns (1) .Find (LngDate)

Le code ci-dessus est utilisé pour trouver l’emplacement où la date spécifiée existe dans la liste des jours fériés.

Sinon RngFind Is Nothing Then OK = « Holiday »

Le code GoTo Last End If Above est utilisé pour vérifier si la date spécifiée existe dans la liste des jours fériés. Si la condition retourne TRUE, la fonction personnalisée renvoie «Holiday» en sortie et le contrôle passe à la dernière ligne de l’UDF.

Veuillez suivre ci-dessous pour le code

Option Explicit

Function IsHoliday(LngDate As Date, Optional InclSaturdays As Boolean = True, _

Optional InclSundays As Boolean = True)

'Declaring variables

Dim RngFind As Range

Dim OK As String

'Initializing the variable

OK = "Working day"

On Error Resume Next

'Finding the location where the specified date exist in the Holidays sheet

Set RngFind = Worksheets("Holidays").Columns(1).Find(LngDate)

On Error GoTo 0

'Checking whether it is holiday on the given date

If Not RngFind Is Nothing Then

OK = "Holiday"

GoTo Last

End If

'Checking whether it is Saturday on given date

If InclSaturdays Then

If Weekday(LngDate, 2) = 6 Then

OK = "Holiday"

GoTo Last

End If

End If

'Checking whether it is Sunday on given date

If InclSundays Then

If Weekday(LngDate, 2) = 7 Then

OK = "Holiday"

End If

End If

Last:

IsHoliday = OK

End Function

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]