Comment comparer des dates et des heures dans Excel VBA

Cet exemple vous apprend à comparer des dates et des heures dans Excel VBA. Les dates et les heures sont stockées sous forme de nombres dans Excel et comptent le nombre de jours depuis le 0 janvier 1900. Ce que vous voyez dépend du format du nombre.

1. Entrez quelques chiffres dans la colonne A.

2. Ces chiffres sont des dates. Ceci est un moyen parfait pour entrer certaines dates sans se soucier du Format de date. Changez le format en Date (cliquez avec le bouton droit sur l’en-tête de la colonne A, Formater les cellules et choisissez Date).

Résultat:

Remarque: les dates sont au format américain. Mois d’abord, jours ensuite. Ce type de format dépend des paramètres régionaux de Windows.

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

3. Déclarez la variable i de type Entier.

 Dim i As Integer

4. Ajoutez une boucle For Next.

For i = 1 To 5

Next i

5. La fonction Date renvoie la date actuelle sans l’heure. Ajoutez la ligne de code suivante à la boucle, pour mettre en surbrillance toutes les cellules contenant la date actuelle (29/3/2020).

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

Résultat:

6. Ajoutez la ligne de code suivante à la boucle pour mettre en surbrillance toutes les dates antérieures au 19/04/2011.

If Cells(i, 1).Value < DateValue(“Avril 20, 2012”) Then Cells(i, 1).Font.Color = vbBlue

Résultat:

7. Mais qu’en est-il des temps, nous vous entendons dire. Ce sont les décimales. Revenez au format général et changez les nombres en nombres décimaux.

8. Modifiez maintenant le format au format «Date et heure».

Résultat:

9. Si vous souhaitez mettre en évidence toutes les cellules contenant la date actuelle, nous ne pouvons plus utiliser la ligne de code à 5. Pourquoi pas? Parce que les nombres de la colonne A sont maintenant des nombres décimaux. La comparer avec Date (un nombre entier) ne donnerait aucune correspondance. (Il ne donnerait un match que le 29/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 à l’entier le plus proche. De cette façon, nous pouvons obtenir les dates sans les heures et comparer ces dates avec Date.

Résultat:

10. Ajoutez la ligne de code suivante pour mettre en surbrillance toutes les cellules contenant des heures du matin.

If (Cells (i, 1) .Value – Int (Cells (i, 1) .Value)) <0,5 Then Cells (i, 1) .Font.Color = vbBlue

 Explication: nous n’avons besoin que des décimales, donc nous soustrayons donc partie entière. Midi (à mi-chemin toute la journée) est représenté par 0,5. Les décimales inférieures à 0,5 correspondent aux heures du matin.

Résultat:

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x