EQUIV en VBA ne fonctionne pas

Résolu
xuorel Messages postés 253 Date d'inscription   Statut Membre Dernière intervention   -  
cousinhub29 Messages postés 1170 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

  1. cousinhub29 Messages postés 1170 Date d'inscription   Statut Membre Dernière intervention   416
     

    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
    1. jee pee Messages postés 31967 Date d'inscription   Statut Modérateur Dernière intervention   10 010
       

      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
      1. cousinhub29 Messages postés 1170 Date d'inscription   Statut Membre Dernière intervention   416 > jee pee Messages postés 31967 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
  2. thev Messages postés 2013 Date d'inscription   Statut Membre Dernière intervention   725
     

    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
    1. cousinhub29 Messages postés 1170 Date d'inscription   Statut Membre Dernière intervention   416
       

      Bonjour Thev, :)

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

      Bonne journée

      0
    2. xuorel Messages postés 253 Date d'inscription   Statut Membre Dernière intervention  
       

      merci à vous deux. Les deux solutions fonctionnent :)

      0