EQUIV en VBA ne fonctionne pas

Résolu
xuorel Messages postés 251 Date d'inscription   Statut Membre Dernière intervention   -  
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   -

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 1074 Date d'inscription   Statut Membre Dernière intervention   361
 

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 41502 Date d'inscription   Statut Modérateur Dernière intervention   9 712
 

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 1074 Date d'inscription   Statut Membre Dernière intervention   361 > jee pee Messages postés 41502 Date d'inscription   Statut Modérateur Dernière intervention  
 

Bonjour,

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

0
thev Messages postés 1982 Date d'inscription   Statut Membre Dernière intervention   711
 

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 1074 Date d'inscription   Statut Membre Dernière intervention   361
 

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 251 Date d'inscription   Statut Membre Dernière intervention  
 

merci à vous deux. Les deux solutions fonctionnent :)

0