Vérifier si elle est un jour férié à la date indiquée en utilisant VBA dans Microsoft Excel
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.
Nous avons précisé les dates de vacances dans la colonne A de la feuille «Vacances».
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.
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]