Automatisation INDEX EQUIV en VBA

Bonjour à tous,

J'aimerais effectuer un index equiv tout ce qu'il y a de plus basique à part qu'il va chercher les données dans un autre classeur, mais étant donné que j'ai besoin de l'automatiser j'aurais besoin de le coder en VBA et je n'y arrive tout simplement pas malgré tous les sujets de forum que j'ai parcouru.

La formule Excel est la suivante:

= INDEX (JURIDIQUE.CSV!$A$2:$B$5000; EQUIV (A10;JURIDIQUE.CSV!$B$2:$B$5000;0);1)

Merci d'avance pour votre aide!

Bonjour

Sans exemple difficile de répondre...

Cependant d'après ce que crois comprendre tu devrais pouvoir résoudre le problème avec ces 2 possibilités :

1) tu écris la formule (ton INDEX/EQUIV) dans une cellule en ayant précédemment démarré l'enregistrement de macro-commandes => tu auras ainsi un code VBA qui te donnera quelque chose de ce genre

cells(..).formula := "=INDEX( .. ,MATCH( .. , .. , .. ))"

2) tu peux sinon utiliser la fonction VBA : WorksheetFunction" de cette manière :

WorksheetFunction.Index(argMatrice, WorksheetFunction.Match(arg1, arg2, arg3))

et l'affectant à une variable ou directement à une cellule faire effectuer le calcul par VBA (tu ne verras pas la formule dans la cellule mais seulement son résultat)

Attention à la 2ème proposition si il y a une erreur de données (N/A, REF...) le code plantera en mode debug

Bonjour, salut Gli73 !

Pour fonctionner, il faudra que le CSV en question soit ouvert et bien formaté (les bonnes infos dans les bonnes colonnes...). Le code serait du genre (nom de cellule à adapter) :

Sub Test()
Dim WB As Worksheet
Set WB = Workbooks("JURIDIQUE.CSV").Sheets(1)
Range("A1") = Application.Index(WB.Range("A2:A5000"),Application.Match(Range("A10"),WB.Range("B2:B5000"),0),1)
End Sub

@pedro22

Oui j'ai noté le "CSV" dans la formulation de la question, mais comme je ne sais pas si il s'git d'une erreur (ou pas)...

Tu as raison j'ai oublié cette méthode... je t'en donne donc la paternité :

3) voir réponse de pedro22 (ci-dessus)

Merci beaucoup à vous deux pour vos réponses, je vais tester ça!

Après avoir testé, le 3ème code m'affiche une erreur d'exécution 9 : l'indice n'appartient pas à la sélection (sur la ligne "Set WB=...")

J'ai du coup regardé à quoi ça pouvait correspondre mais je n'ai malheureusement pas pu trouver l'origine exacte de cette erreur

Bonjour Marshall94, (Pedro22)

Edit :

Quand je lis ta réponse concernant le code de Pedro il me vient une question !

Dans ta formule initiale le terme que tu utilises "JURIDIQUE.CSV" est il

1) un onglet ?

2) un autre classeur ?

3) un fichier CSV ?

à mon avis c'est un onglet, ce qui expliquerait le non fonctionnement de la proposition de Pedro qui fait référence à un fichier (lu comme un autre classeur)


Non je reviens sur ce que je viens de dire.... tu parles bien (plus haut dans le fil) d'un classeur :

Alors au code de Pedro il faut juste que tu confirmes que tu entres le bon "nom de ce classeur" qui doit inclure le chemin complet et l'extension correcte !

Rechercher des sujets similaires à "automatisation index equiv vba"