XL 2019 Fonction Match

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 !

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) 😉
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

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

- 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
2
Affichages
52
Réponses
20
Affichages
729
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
258
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
797
Retour