Microsoft 365 Fonction Equiv en VBA (Bizare)

  • Initiateur de la discussion Initiateur de la discussion Lolote83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
Je souhaitais simplement récupérer en VBA la valeur de la ligne correspondant à la date du jour dans un tableau structuré.
Pour cela, j'utilise la fonction correspondant à EQUIV (Application.Match.......)
- Si je fais appel à la cellule B2 (Jaune) la fonction Application.Match = OK
- Si par contre, j'affecte à une variable la valeur de le cellule B2, la fonction Application.Match = NON OK
- Si j'affecte à une variable la fonction DATE, le résultat ne fonctionne pas = NON OK
- Et pour finir, je comptais me passer d'une cellule intermédiaire voire même d'une variable et donc utiliser la fonction DATE directement, la fonction Application.Match = NON OK
J'ai bien essayé de déterminer mes variables en les définissant comme Date mais cela ne change pas le résultat.
J'ai même essayé en combinant avec CDATE(....) mais pas plus de résultat.
Je ne comprends pas pourquoi et surtout quelle serait la solution.
Merci à tous pour votre collaboration.
Cordialement
Lolote83
 

Pièces jointes

Dernière édition:
Solution
re
Bonjour lolote83
allons allons tu sais très bien que les dates dans les cellules sont des numerique et non ce que tu vois
sauf si elle sont en numberformat "@"

VB:
Sub ReupNumLig()
    'Dim xDateDuJour2 As Date
    'Dim xDateDuJour3 As Date
   
   
    'OK = Date du jour saisie en cellule B2 : Formule = aujourd'hui()
    xLig1 = Application.Match(Range("B2"), Range("Tableau2[Date]"), 0)
   MsgBox xLig1
   
    'NON OK = Affectation de la valeur de la cellule B26 à variable xDateDuJour2
    xDateDuJour2 = Range("B2")
    xLig2 = Application.Match(CLng(xDateDuJour2), Range("Tableau2[Date]"), 0)
    MsgBox xLig2
 
    'NON OK = Affectation de la date du jour (fonction date) à variable xDateDuJour3
    xDateDuJour3 = Date
    xLig3 =...
re
Bonjour lolote83
allons allons tu sais très bien que les dates dans les cellules sont des numerique et non ce que tu vois
sauf si elle sont en numberformat "@"

VB:
Sub ReupNumLig()
    'Dim xDateDuJour2 As Date
    'Dim xDateDuJour3 As Date
   
   
    'OK = Date du jour saisie en cellule B2 : Formule = aujourd'hui()
    xLig1 = Application.Match(Range("B2"), Range("Tableau2[Date]"), 0)
   MsgBox xLig1
   
    'NON OK = Affectation de la valeur de la cellule B26 à variable xDateDuJour2
    xDateDuJour2 = Range("B2")
    xLig2 = Application.Match(CLng(xDateDuJour2), Range("Tableau2[Date]"), 0)
    MsgBox xLig2
 
    'NON OK = Affectation de la date du jour (fonction date) à variable xDateDuJour3
    xDateDuJour3 = Date
    xLig3 = Application.Match(CLng(xDateDuJour3), Range("Tableau2[Date]"), 0)
  MsgBox xLig3
 
End Sub

et pour preuve
si on évalue la formule en VBA on se rend bien compte que c'est bien la valeur numérique qui est prise en compte sinon ça ne fonctionne pas
VB:
xDateDuJour4 = Range("B2")
    xLig4 = Evaluate("=MATCH(" & CLng(xDateDuJour4) & ",Tableau2[Date],0)")
    MsgBox xLig4



😉
 
Dernière édition:
re
et si tu n'es pas encore convaincue teste ceci
MsgBox "ce que l'on voit " & [B2].Value & vbCrLf & " ce que l'on ne voit pas " & [B2].Value2
conclusion avec les dates choisi toujours la valeur absolue ".value2"

exemple avec un qui ne fonctionnait pas
VB:
Sub test2()
'NON OK = Affectation de la valeur de la cellule B26 à variable xDateDuJour2
    xDateDuJour2 = Range("B2").Value2'!!!!!!!!!!!!!!!(.value2)
    xLig2 = Application.Match(xDateDuJour2, Range("Tableau2[Date]"), 0)
    MsgBox xLig2
End Sub
'maintenant oui ca marche '
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
317
  • Question Question
Microsoft 365 Aide Excel formule
Réponses
4
Affichages
348
Réponses
5
Affichages
539
Retour