EQUIV en VBA ne fonctionne pas

Résolu
xuorel Messages postés 250 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 25 novembre 2024 - Modifié le 25 nov. 2024 à 10:10
cousinhub29 Messages postés 968 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 25 novembre 2024 - 25 nov. 2024 à 12:41

Bonjour,

je possède une liste de dates dans une plage CALENDRIER

je possède une date à recherche dans la cellule D_RECH.

je voudrais utiliser la fonction EQUIV (MATCH) en VBA.

Sub test1()

Dim P As Variant
Dim V As Variant

Set P = Range("CALENDRIER")
V = Range("D_RECH").Value
MsgBox V

MsgBox WorksheetFunction.Match(V, P, 0)

End Sub

Lorsque j'exécute le programme j'obtiens le message d'erreur suivant : 

Merci pour votre aide
Windows / Chrome 131.0.0.0

2 réponses

cousinhub29 Messages postés 968 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 25 novembre 2024 345
Modifié le 25 nov. 2024 à 10:40

Bonjour,

Perso, j'aurais fait ainsi : (Regarde aussi les définitions de variables)

Sub test1()
Dim P As Range
Dim V As Long
Set P = Range("CALENDRIER")
V = Range("D_RECH").Value
MsgBox V
MsgBox Application.WorksheetFunction.Match(V, P, 0)
End Sub

PS, désolé pour le rendu, à priori la balise "Code" ne supporte pas le lundi matin

Lorsque je rédige, j'ai bien ceci :


0
jee pee Messages postés 40473 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 novembre 2024 9 428
Modifié le 25 nov. 2024 à 12:38

Bonjour,

La balise code, sans indication d'un langage n'a pas de saut de ligne.

Mais si on choisit un langage c'est bon
 

Sub test1()
Dim P As Range
Dim V As Long
Set P = Range("CALENDRIER")
V = Range("D_RECH").Value
MsgBox V
MsgBox Application.WorksheetFunction.Match(V, P, 0)
End Sub
0
cousinhub29 Messages postés 968 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 25 novembre 2024 345 > jee pee Messages postés 40473 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 novembre 2024
25 nov. 2024 à 12:41

Bonjour,

Et merci (je crois que c'est plutôt moi qui ne supporte pas le lundi...)

0
thev Messages postés 1889 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 25 novembre 2024 691
Modifié le 25 nov. 2024 à 10:53

Bonjour,

Votre problème vient d'une recherche sur un format :Date

La seule solution est de faire une recherche au format : Texte. Ci-dessous code

Sub test1()

    Dim P As Variant
    Dim V As Variant
    
    Set P = Range("CALENDRIER")
    V = CStr(Range("D_RECH").Value)
    MsgBox V
    
    Msgbox WorksheetFunction.Match(V, P.Value, 0)

End Sub

0
cousinhub29 Messages postés 968 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 25 novembre 2024 345
25 nov. 2024 à 11:02

Bonjour Thev, :)

La fonction Match en VBA pour une date fonctionne également lorsqu'on déclare la date en Long

Bonne journée

0
xuorel Messages postés 250 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 25 novembre 2024
25 nov. 2024 à 11:11

merci à vous deux. Les deux solutions fonctionnent :)

0