Index Equiv en VBA

Fchris

XLDnaute Occasionnel
Bonjour à tous,

J'aimerais savoir s'il existe l'équivalent des fonctions Index et Equiv en VBA, et si oui, quel en est la syntaxe ?

Merci par avance

Christophe
 

tototiti2008

XLDnaute Barbatruc
Re : Index Equiv en VBA

Bonjour Fchris,

Oui, on peut utiliser :

Application.WorksheetFunction.Match(Valeur, Plage, 0)

pour Equiv
et

Application.WorksheetFunction.Index(Plage, Ligne, Colonne)

pour Index

sinon, tu peux également passer par Evaluate pour évaluer le résultat d'une formule.
 

Fchris

XLDnaute Occasionnel
Re : Index Equiv en VBA

Bon, finalement je n'y arrive pas :(

Mais je ne dois pas m'y prendre comme il faut.

En fait, je cherche à récupérer des données provenant d'une table, dont le nombre de colonne peut varier de 3 à 4 colonnes.

Mais les infos de la table sont récupérées via une formule "Decaler" (dont tu es l'auteur par ailleurs...;) ), et je n'arrive pas à récupérer les infos dont j'ai besoin (j'ai essayé avec une méthode Find, mais ça ne marche pas non plus)

Ci-joint fichier exemple qui sera beaucoup plus clair que toutes mes explications. N'hésite pas à me poser toutes les questions nécessaires, car ce qui est clair pour moi ne le sera pas forcément pour toi.

Merci de ton aide...

Cijoint.fr - Service gratuit de dépôt de fichiers

Christophe
 
Dernière édition:

Fchris

XLDnaute Occasionnel
Re : Index Equiv en VBA

je crois avoir à peu près compris sauf une chose : qu'est-ce qui détermine la colonne de ta table où tu vas rechercher ? l'age ? et si oui, quels sont les critères ?

C'est tout à fait ça. C'est l'âge qui détermine la colonne dans laquelle on va chercher les infos.

2 types de tables :

- 1 avec 3 colonnes. Une pour l'ancienneté, une pour les personnes de moins de 50 ans et une pour les 50 ans et plus.

- 1 avec 4 colonnes. Une pour l'ancienneté, une pour les moins de 50 ans, une pour les moins de 56 ans, et une pour 56 ans et plus (table 1 par exemple). Il s'agit de tranche bien entendu (de 0 à 50, de 51 à 55, et plus de 55 ans)
 

tototiti2008

XLDnaute Barbatruc
Re : Index Equiv en VBA

alors :

c'est dans la partie numéro de colonne de Recherchev. En fait, on ne recherche pas toujours dans la même colonne.

2+SI($E$5>=50;1;0)+SI(ET($U$4<>0;E5>55);1;0)

On recherche dans la colonne 2
Si E5>50, on ajoute 1 au numéro de colonne
si U4<>0 et E5>55, on ajoute 1 au numéro de colonne

d'ailleurs ça pouvait aussi s'écrire

2+(E5>50)*1+(U4<>0)*(E5>55)*1

mais c'est encore moins clair, je crois...
 

Fchris

XLDnaute Occasionnel
Re : Index Equiv en VBA

alors :

c'est dans la partie numéro de colonne de Recherchev. En fait, on ne recherche pas toujours dans la même colonne.

2+SI($E$5>=50;1;0)+SI(ET($U$4<>0;E5>55);1;0)

On recherche dans la colonne 2
Si E5>50, on ajoute 1 au numéro de colonne
si U4<>0 et E5>55, on ajoute 1 au numéro de colonne

d'ailleurs ça pouvait aussi s'écrire

2+(E5>50)*1+(U4<>0)*(E5>55)*1

mais c'est encore moins clair, je crois...

C'est tout bon, j'ai tout compris :D enfin je crois... :p

Merci beaucoup
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 691
Membres
103 641
dernier inscrit
anouarkecita2