Liste et ajouter des jours de mois dans une période déterminée en utilisant VBA dans Microsoft Excel
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».
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.
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]