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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *