Comment comparer des dates dans VBA (avec des exemples)
Vous pouvez utiliser la syntaxe de base suivante dans VBA pour comparer deux dates :
Sub CompareDates()
Dim i As Integer
For i = 2 To 5
If CDate(Range("A" & i)) < CDate(Range("B" & i)) Then
Result = "First Date is Earlier"
Else
If CDate(Range("A" & i)) > CDate(Range("B" & i)) Then
Result = "First Date is Later"
Else
Result = "Dates Are Equal"
End If
End If
Range("C" & i) = Result
Next i
End Sub
Cet exemple particulier comparera les dates dans les cellules correspondantes dans les plages A2:A5 et B2:B5 et renverra le résultat des comparaisons de dates dans la plage C2:C5 .
Remarque : La fonction CDate convertit la valeur d’une cellule donnée en date.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : comparer des dates dans VBA
Supposons que nous ayons les deux colonnes suivantes avec des dates dans Excel :
Supposons que nous souhaitions comparer les dates dans chaque ligne correspondante et afficher les résultats de la comparaison des dates dans la colonne C.
Nous pouvons créer la macro suivante pour ce faire :
Sub CompareDates()
Dim i As Integer
For i = 2 To 5
If CDate(Range("A" & i)) < CDate(Range("B" & i)) Then
Result = "First Date is Earlier"
Else
If CDate(Range("A" & i)) > CDate(Range("B" & i)) Then
Result = "First Date is Later"
Else
Result = "Dates Are Equal"
End If
End If
Range("C" & i) = Result
Next i
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Les résultats des comparaisons de dates sont désormais affichés dans la colonne C.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment trier une feuille sur plusieurs colonnes
VBA : Comment compter le nombre de lignes dans la plage
VBA : comment filtrer une colonne