Brian aimerait saisir une date en saisissant uniquement le mois et le jour.

Excel suppose que l’année est l’année en cours, mais il aimerait que l’année soit celle de la prochaine fois que cette date survient. Par exemple, si aujourd’hui est le 1/6/18 et que Brian tape 7/1, Excel suppose automatiquement une année de 2018. Si Brian tape 5/1 le même jour, Excel devrait supposer une année de 2019, comme 5/1 est déjà dans le passé. Brian sait qu’il peut utiliser une formule pour afficher la date dans une cellule différente, mais se demande comment il peut faire en sorte qu’Excel adopte cette approche par défaut lorsqu’il saisit des dates dans des cellules.

À moins de jouer avec la date de votre système ou de modifier les dates après leur saisie, la solution nécessite l’utilisation d’une macro. Le gestionnaire d’événements suivant fera l’affaire:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target = "" Then Exit Sub

If IsDate(Target) Then         If Target < Date Then             If Year(Target) = Year(Date) Then                 Application.EnableEvents = False                     Target.Value = DateAdd("yyyy", 1, Target)

Application.EnableEvents = True             End If         End If     End If End Sub

Pour ajouter cette macro à votre classeur, cliquez simplement avec le bouton droit sur l’onglet de la feuille de calcul où vous voulez qu’elle soit opérationnelle, puis choisissez Afficher le code. Dans la fenêtre de code résultante, ajoutez la macro ci-dessus.

Désormais, chaque fois que vous apportez une modification à la feuille de calcul, elle est vérifiée pour voir s’il s’agit d’une date. Si tel est le cas et que la date est antérieure à la date du jour, une année est ajoutée à la date. Notez que le code vérifie que l’année de la date saisie est la même que l’année en cours. Sans ce contrôle, toute date dans le passé – même des dates de plusieurs années dans le passé – serait incrémentée. Ce n’est probablement pas prévu, donc le chèque est inclus.

La macro n’affectera pas les dates entrées dans plusieurs cellules à la fois, ni les dates saisies en tant que valeurs 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 (13601) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.