OVH Cloud OVH Cloud

Erreur WorksheetFunction.Match

2 réponses
Avatar
Michel
Bonjour,

Par une macro, je dois trouver le num=E9ro de la ligne de=20
la 1=E8re occurence d'une donn=E9e dans une table.

Pour ce faire j'=E9cris les lignes suivantes :

Set MyRange =3D Worksheets(1).Range("TBAR").Column(1)
Ligne =3D Application.WorkSheetFunction.Match(Bar, MyRange,=20
0)

o=F9 "Bar" est la valeur que je veux trouver dans la=20
colonne 1 de la table "TBAR".

L'ex=E9cution de la macro s'arr=EAte toujour sur cette=20
derni=E8re instruction avec le message :

"Impossible de lire la propri=E9t=E9 Match de la classe=20
WorkSheetFunction"

Je ne comprends pas le message car Match est bien une=20
propri=E9t=E9 de WorkSheetFunction dans l'explorateur=20
d'objets. La seule explication que je peux donner est que=20
mon Excel est une version francophone et que MATCH est=20
traduit par EQUIV dans les fonctions Excel. Mais EQUIV=20
n'est pas accessible par VBA.

Avez-vous une solution?

Merci d'avance.

2 réponses

Avatar
isabelle
bonjour Michel,

essaie comme ça,

Set MyRange = Range("TBAR").Columns(1)
Ligne = Application.Match(Bar, MyRange, 0)

isabelle


Bonjour,

Par une macro, je dois trouver le numéro de la ligne de
la 1ère occurence d'une donnée dans une table.

Pour ce faire j'écris les lignes suivantes :

Set MyRange = Worksheets(1).Range("TBAR").Column(1)
Ligne = Application.WorkSheetFunction.Match(Bar, MyRange,
0)

où "Bar" est la valeur que je veux trouver dans la
colonne 1 de la table "TBAR".

L'exécution de la macro s'arrête toujour sur cette
dernière instruction avec le message :

"Impossible de lire la propriété Match de la classe
WorkSheetFunction"

Je ne comprends pas le message car Match est bien une
propriété de WorkSheetFunction dans l'explorateur
d'objets. La seule explication que je peux donner est que
mon Excel est une version francophone et que MATCH est
traduit par EQUIV dans les fonctions Excel. Mais EQUIV
n'est pas accessible par VBA.

Avez-vous une solution?

Merci d'avance.


Avatar
Michel
Merci Isabelle, cela fonctionne impeccablement.


-----Message d'origine-----
bonjour Michel,

essaie comme ça,

Set MyRange = Range("TBAR").Columns(1)
Ligne = Application.Match(Bar, MyRange, 0)

isabelle


Bonjour,

Par une macro, je dois trouver le numéro de la ligne de
la 1ère occurence d'une donnée dans une table.

Pour ce faire j'écris les lignes suivantes :

Set MyRange = Worksheets(1).Range("TBAR").Column(1)
Ligne = Application.WorkSheetFunction.Match(Bar,
MyRange,


0)

où "Bar" est la valeur que je veux trouver dans la
colonne 1 de la table "TBAR".

L'exécution de la macro s'arrête toujour sur cette
dernière instruction avec le message :

"Impossible de lire la propriété Match de la classe
WorkSheetFunction"

Je ne comprends pas le message car Match est bien une
propriété de WorkSheetFunction dans l'explorateur
d'objets. La seule explication que je peux donner est
que


mon Excel est une version francophone et que MATCH est
traduit par EQUIV dans les fonctions Excel. Mais EQUIV
n'est pas accessible par VBA.

Avez-vous une solution?

Merci d'avance.
.