XL 2019 Fonction Match

BNJ-ANIOL

XLDnaute Nouveau
Hello la communauté, (le 14/06/23)

Voici un petit défis : deux macros similaire, la première fonctionne, la seconde me sort une erreur : "Impossible de lire la propriété Match de la classe WorksheetFunction"

1)
ligne_sup = WorksheetFunction.Match([B4], Columns(2))
MsgBox (ligne_sup)

2)
Dim val_sup
val_sup = [B4]
ligne_sup = WorksheetFunction.Match(val_sup, Columns(2))
MsgBox (ligne_sup)

Merci pour vos lumières...

Le 15/06/23
J'ai avancé un peu sur mon problème (grâce à vos remarques...)
Donc pour ceux qui ont souligné le coté étrange de mon code [B4] et columns(2) , effectivement le résultat attendu est "4" , puisque B4 est dans la colonne 2 ; Mais parfois quand je galère sur un bug, j'essaie de me créer un code test basique pour voir où se trouve l'erreur.

Finalement, le bug vient de ma variable Sup_saisie
Au début, je n'avais pas précisé que Sup_saisie était une date
Mais même si j'écris : "Dim Sup_saisie as Date" , ça ne change pas mon problème
En revanche, si dans [B4] je mets un nombre classique ou du texte , alors il n'y a plus de problème.
Donc j'en viens à déduire que la fonction Match n'arrive pas à traiter les dates - à moins qu'il y aie une astuce...
 
Dernière édition:
Solution
bonjour
avec un fichier ca va beaucoup mieux
Dans la macro qui ne fonctionne pas ta valeur val_sup est une date qu'il faut transformer en double car la recherche se fait sur des valeurs numériques ( les dates en excel sont des valeurs numériques)
donc deux solutions déclarer
VB:
Dim val_sup As Double

ou transformer ta valeur en double.

Code:
ligne_sup = WorksheetFunction.Match(CDbl(val_sup), Columns(2))

dans le deuxième cas cela marche car il n'y a pas de variable

nota: avec un fichier résolu en 2 minutes ( et encore je suis large) ;)

BNJ-ANIOL

XLDnaute Nouveau
bonsoir
Pourquoi s'entêter alors que le demandeur ne fait pas l'effort de fournir un fichier pour que l'on puisse analyser correctement le pb. :( il serait bien qu'il lise ou relise la charte!
le reste ne peut être que supputations!
Bonjour,
Désolé je pensais que mon fichier était suffisament simpliste et que mon explication était relativement clair.
Mais effectivement il manquait le détail du contenant de la macro.
Donc en pièce jointe le fichier de base
 

Pièces jointes

  • macro_match.xlsm
    18.2 KB · Affichages: 1

JM27

XLDnaute Barbatruc
bonjour
avec un fichier ca va beaucoup mieux
Dans la macro qui ne fonctionne pas ta valeur val_sup est une date qu'il faut transformer en double car la recherche se fait sur des valeurs numériques ( les dates en excel sont des valeurs numériques)
donc deux solutions déclarer
VB:
Dim val_sup As Double

ou transformer ta valeur en double.

Code:
ligne_sup = WorksheetFunction.Match(CDbl(val_sup), Columns(2))

dans le deuxième cas cela marche car il n'y a pas de variable

nota: avec un fichier résolu en 2 minutes ( et encore je suis large) ;)
 

Pièces jointes

  • macro_match.xlsm
    17.9 KB · Affichages: 0

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin