VBA : Comment utiliser la fonction MATCH avec des dates
Vous pouvez utiliser la syntaxe suivante pour utiliser la fonction MATCH afin de rechercher une date dans VBA :
Sub MatchDate()
'attempt to find date in range
On Error GoTo NoMatch
MyMatch = WorksheetFunction.Match(CLng(CDate("4/15/2023")), Range("A2:A10"), 0)
MsgBox (MyMatch)
End
'if no date found, create message box to tell user
NoMatch:
MsgBox ("No Match Found")
End
End:
End Sub
Cet exemple particulier recherche la date du 15/04/2023 dans la plage A2:A10 .
Si la date est trouvée, une boîte de message apparaît indiquant à l’utilisateur quelle ligne de la plage contient la date.
Si la date n’est pas trouvée, une boîte de message apparaît indiquant « Aucune correspondance trouvée » afin que l’utilisateur sache que la date n’existe pas dans la plage.
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Remarque : La fonction CDate convertit une chaîne de texte en date en VBA.
Exemple : utiliser la fonction MATCH avec des dates dans VBA
Supposons que nous ayons la liste de dates suivante dans la plage A2:A10 dans Excel :
Nous pouvons créer la macro suivante pour rechercher le numéro de ligne qui contient la date du 15/04/2023 dans la plage A2:A10 :
Sub MatchDate()
'attempt to find date in range
On Error GoTo NoMatch
MyMatch = WorksheetFunction.Match(CLng(CDate("4/15/2023")), Range("A2:A10"), 0)
MsgBox (MyMatch)
End
'if no date found, create message box to tell user
NoMatch:
MsgBox ("No Match Found")
End
End:
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
La boîte de message nous indique que la date 15/04/2023 a été trouvée dans la 7ème ligne de la plage A2:A10 .
Notez que si nous recherchions plutôt la date du 25/04/2023 , nous recevrions le résultat suivant :
La boîte de message nous indique que la date du 25/04/2023 n’a pas été trouvée dans la plage.
Remarque : Vous pouvez trouver la documentation complète de la méthode Match dans VBA ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : comment utiliser XLOOKUP
VBA : comment utiliser la correspondance d’index
VBA : Comment utiliser INDEX MATCH avec plusieurs critères