Cet exemple vous apprend comment comparer les dates et heures dans Excel VBA. Les dates et heures sont stockées sous forme de nombres dans Excel et compter le nombre de jours écoulés depuis 0 Janvier 1900. Ce que vous voyez dépend du format numérique.

  1. Entrez quelques chiffres dans la colonne A.

Numbers

  1. Ces chiffres sont des dates. Ceci est un moyen idéal pour entrer des dates sans se soucier du format de date. Modifier le format à ce jour (clic droit sur l’en-tête colonne A, Format de cellule et choisissez Date).

Résultat:

Dates

Note: Les dates sont au format US. Mois premiers, Jours deuxième. Ce type de format dépend de vos fenêtres de paramètres régionaux.

Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivant:

  1. Déclarer la variable i de type entier.

Dim i As Integer
  1. Ajouter une boucle For Next.

For i = 1 To 5

Next i
  1. La fonction Date renvoie la date sans l’heure. Ajoutez la ligne de code suivant à la boucle, pour mettre en évidence toutes les cellules contenant la date (13/03/2020).

If Cells(i, 1).Value = Date Then Cells(i, 1).Font.Color = vbRed

Résultat:

Dates Equal To

  1. Ajoutez la ligne de code suivant à la boucle, pour mettre en évidence toutes les dates antérieures à 19.4.2019.

If Cells(i, 1).Value < DateValue("April 19, 2019") Then Cells(i, 1).Font.Color = vbRed

Résultat:

Dates Earlier Than

  1. Mais qu’en est-temps, nous entendons que vous dites. Ils sont les décimales. Revenez au format général et changer les numéros de nombres décimaux.

Decimal Numbers

  1. changer maintenant le format « Date et heure » format.

Date and Time Format

Résultat:

Dates and Times

  1. Si vous souhaitez mettre en évidence toutes les cellules contenant la date actuelle, nous ne pouvons pas utiliser la ligne de code à 5 plus. Pourquoi pas? Parce que les chiffres dans la colonne A sont des nombres décimaux maintenant. La comparaison avec date (un nombre entier) ne donnerait pas un match. (Il ne donnerait un match avec 13/03/2020 à minuit exactement!) La ligne de code suivante fonctionne:

If Int(Cells(i, 1).Value) = Date Then Cells(i, 1).Font.Color = vbRed

Explication: nous utilisons simplement la fonction Int. La fonction Int Arrondit un nombre entier le plus proche. De cette façon, nous pouvons obtenir les dates sans les temps et comparer ces dates avec date.

Résultat:

Dates Without Times Equal To

  1. Ajouter la ligne de code suivant pour mettre en évidence toutes les cellules contenant fois le matin.

If (Cells(i, 1).Value - Int(Cells(i, 1).Value)) < 0.5 Then Cells(i, 1).Font.Color = vbRed

Explication: nous ne devons donc nous les décimales soustrayons donc la partie entière. Midi (à mi-chemin à travers la journée) est représenté par 0,5.

Décimales inférieur à 0,5 sont les temps du matin.

Résultat:

Times in the Morning