Index equiv VBA

Bonjour à tous,

Je cherche à convertir une formule Excel en VBA.

J'ai trouvé les équivalents via différents autre sujet mais j'ai toujours un message d'erreur que je ne comprends pas...

Voici la formule en question et sa traduction selon moi en VBA.

=INDEX($E$2:$J$2;EQUIV(1;$E3:$J3;1))

Cells(c, 4) = WorksheetFunction.Index("E2:J2", WorksheetFunction.Match(1, "E3:J3", 1))
13indexequivvbva.xlsx (13.35 Ko)

Merci d'avance.

Salut,

La macro dans le fichier ci-joint devrait faire l'affaire.

Cordialement.

81indexequivvbva.xlsm (21.41 Ko)

Bonsoir Jean-mich_974 ,

Dans la formule EQUIV d'une feuille de calcul, le deuxième paramètre est une plage de cellules et non une chaine de caractères.

Dans la formule UNDEX d'une feuille de calcul, le premier paramètre est une plage de cellules et non une chaine de caractères.

On écrira donc :

WorksheetFunction.Index(Range("E2:J2"), WorksheetFunction.Match(99, Range("E3:J3"), 1))

ou en plus court

MsgBox Application.Index([E2:J2], Application.Match(99, [E3:J3]))

Nota : j'ai remplacé le nombre recherché 1 par 99 (il faut rechercher un nombre supérieur au nombre max de la plage si vous désirez trouver la dernière valeur numérique de la plage). En toute rigueur, rechercher 2 aurait suffit puisqu'il n'y a que des 1 semble-t-il..

Bonjour,

Merci à tous les deux pour vos réponses.

Rechercher des sujets similaires à "index equiv vba"