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

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

      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 1114 Date d'inscription   Statut Membre Dernière intervention   381 > jee pee Messages postés 9450 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 2011 Date d'inscription   Statut Membre Dernière intervention   724
     

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

      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