VBA - Problème avec WorksheetFunction.Match

oracle7

XLDnaute Nouveau
Bonsoir à tous,

Voilà mon problème :

1 - lorsque sous EXCEL dans une cellule je place la formule suivante :
(sachant que CIPD_NoCAT et CIPD_RefFAB sont 2 plages nommées)

Code:
{=EQUIV(1; (CIPD_NoCAT = A4) * (CIPD_RefFAB = H4);0)}
Tout se passe bien et j'obtiens bien le résultat escompté à savoir l'index de la ligne répondant aux 2 critères contenus dans les cellules A4 et H4.

2 - Maintenant, je souhaite reproduire cette recherche d'index de ligne sur les mêmes critère mais cette fois en VBA.
Dans une macro j'ai donc une ligne du type :
Code:
On Error Resume Next
dPos = WorksheetFunction.Match(1, ([CIPD_NoCAT] = vNoCAT) * ([CIPD_RefFAB] = vRefFAB), 0)
If Err.Number = 1004 Then
     .... si ligne non trouvée
Sachant que mes 2 critères de recherche sont stockés dans respectivement les variables 'vNoCAT' et 'vRefFAB' et que l'on a toujours les 2 mêmes plages nommées qu'en version EXCEL ci-dessus.

Dans ce cas la fonction 'WorksheetFunction.Match' me renvoie toujours une erreur (pas forcément N°1004) et donc je n'arrive pas à obtenir mon index de ligne. Je précise qu'il existe bien une ligne répondant aux 2 critères !

Aussi j'en fais appel à vous pour m'aider à corriger ce qui ne va pas dans mon code VBA car je tourne en rond depuis quelques temps maintenant.

Merci d'avance
Cordialement
oracle7:):):)
 

Pierrot93

XLDnaute Barbatruc
Re : VBA - Problème avec WorksheetFunction.Match

Bonjour,

il me semble que ta formule sous Excel soit une formule matricielle, alors que sous vba, avec "WorksheetFunction.Match" elle ne l'est pas (matricielle), à priori ceci expliquerai cela... maintenant n'étant pas formuliste et sans fichier difficile de t'en dire plus...

bonne journée
@+
 

Discussions similaires

Réponses
12
Affichages
397
Réponses
7
Affichages
405

Statistiques des forums

Discussions
312 490
Messages
2 088 881
Membres
103 981
dernier inscrit
vinsalcatraz