Dans cet article, nous allons créer une macro pour lister les mois entre la période définie et également le nombre de jours dans ce mois particulier. Il affichera également le nombre total de jours entre la période définie.

Nous avons créé une macro «DaysInPeriod» pour répertorier les mois et le nombre de jours dans un mois. La macro peut être exécutée en cliquant sur le bouton «Soumettre».

Avant d’exécuter la macro, il faut fournir une entrée pour la date de début et de fin. Il prend la valeur dans la cellule «G6» comme date de début et la valeur dans la cellule «G7» comme date de fin. La sortie sera affichée ci-dessous dans la cellule «F9».

RawInput

En cliquant sur le bouton Soumettre, la macro affichera le nom du mois dans la colonne F et le nombre de jours de ce mois dans la colonne G. La dernière ligne affichera le nombre total de jours entre la période spécifiée.

AfterRunningMacro

Explication logique

Dans la macro, nous commençons la boucle de la date de début à la date de fin spécifiée. En boucle, nous vérifions la dernière date d’un mois. Si la dernière date d’un mois est rencontrée, le nom du mois et le nombre de jours de ce mois sont affichés dans les colonnes F et G. de même, nous vérifions également la date de fin. Lorsque la date de fin est rencontrée, l’entrée du dernier mois et le nombre de jours de ce mois sont affichés.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub DaysInPeriod()

Dim StartDate, EndDate As Date

Dim intRow As Integer, intDays As Integer

'Clearing previous content

Range("F10:G1048576").ClearContents

'Getting start and end date

StartDate = Range("G6")

EndDate = Range("G7")

'Initializing the variable to starting row number

intRow = 10

'Listing the months and number of days from starting date to end date

Do



intDays = intDays + 1



'Checking for last date of the month or when StartDate is equal to EndDate

If (Month(StartDate) <> Month(StartDate + 1)) Or StartDate = EndDate Then

'Inserting the month name

Cells(intRow, 6) = Format(StartDate, "mmmm")

'Inserting number of days in the month

Cells(intRow, 7) = intDays

'Moving to next row

intRow = intRow + 1

intDays = 0

End If



'Moving to next date

StartDate = StartDate + 1

Loop Until StartDate > EndDate

'Getting the sum in the last row

Cells(intRow, 6) = "Total Days"

Cells(intRow, 7) = Application.Sum(Range("G10:G" & intRow))



End Sub

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]