Transférer les dates au mois dernier (Microsoft Excel)
Kathy a besoin d’une formule qui changera n’importe quelle date du mois en cours au dernier jour du mois précédent. Elle note également qu’il serait utile d’avoir une macro VBA qui pourrait le faire aux dates dans une plage de cellules sélectionnées.
Il existe en fait plusieurs approches formulées différentes que vous pouvez utiliser pour dériver la date souhaitée. Ces deux éléments sont les plus courts et les plus faciles à utiliser:
=A1-DAY(A1) =EOMONTH(A1,-1)
Le premier fonctionne car le « jour 0 » du mois en cours est toujours considéré comme le dernier jour du mois précédent. Ainsi, si la date dans la cellule A1 est 25/09/20, vous finissez par soustraire 25 (la valeur DAY) de ce jour, ce qui donne une date de 9/0/20 ou 31/08/20.
La deuxième formule fonctionne en raison de l’inclusion du deuxième paramètre pour la fonction EOMONTH. Ce paramètre est utilisé pour indiquer combien de mois dans le passé (négatif) ou futur (positif) la fin du mois doit être calculée.
Dans les deux cas, vous devrez peut-être mettre en forme la cellule contenant la formule sous forme de date. Si vous ne le faites pas, ce que vous voyez peut être le numéro de série sous-jacent utilisé par Excel pour calculer les dates.
Si vous voulez une macro qui convertira réellement les dates d’une plage sélectionnée en dernier jour du mois précédent, ce qui suit fera l’affaire.
Sub LastDayPreviousMonth() Dim rCell As Range For Each rCell In Selection If IsDate(rCell) And Not rCell.HasFormula Then rCell.Value = WorksheetFunction.EoMonth(rCell.Value, -1) End If Next rCell End Sub
La macro parcourt chaque cellule de la plage sélectionnée et vérifie si elle contient une date et n’est pas une formule. (En d’autres termes, si la date dans une cellule est le résultat d’une formule, la formule n’est pas modifiée.)
La fonction EOMONTH est ensuite utilisée, comme décrit précédemment, pour calculer la date souhaitée.
Il convient de mentionner que l’approche macro convertira également les dates textuelles. Par exemple, si une cellule contient, sous forme de texte, la date « 15/06/20, »
puis la macro le changera en 30/05/20. Une fois la date ajustée replacée dans la cellule, elle s’affichera sous forme de numéro de série date / heure, pas sous forme de texte.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (13304) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.