IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Traduire Formule Excel [Index/Equiv] [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 17
    Points
    17
    Par défaut Traduire Formule Excel [Index/Equiv]
    Bonjour à tous,

    Je cherche trouver une solution en VBA pour "traduire" cette formule :

    =INDEX(LAB!$A$10:$BZ$69;EQUIV(1;(LAB!$A$10:LAB!$A$98=$A5)*(LAB!$B$10:LAB!$B$98=$B5)*(LAB!$C$10:LAB!$C$98=$C5);0);3+G$4)

    Le but de cette formule est de rechercher une donnée qui répond aux trois critères des cellules A5, B5 et C5 (mais aussi ensuite des lignes 6, 7, 8, ...) dans un tableau (LAB!$A$10:$BZ$69).

    Ce résultat est à écrire dans l'onglet Synth_Lab.

    Je ne sais pas comment m'y prendre.

    Je vous remercie de l'aide que vous pourrait m'apporter.

    Hergé

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    L'utilisation de l'enregistreur de macros est le plus simple.
    Après avoir lancer l'enregistreur de macros, tu tapes la formule, tu valides par entrée et tu arrêtes l'enregistreur.
    Si la formule est déjà encodée et après avoir lancé l'enregistreur, tu places le curseur à la fin de la formule dans la zone des formules et tu valides par entrée
    Voici le code généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(LAB!$A$10:$BZ$69;EQUIV(1;(LAB!$A$10:LAB!$A$98=$A5)*(LAB!$B$10:LAB!$B$98=$B5)*(LAB!$C$10:LAB!$C$98=$C5);0);3+G$4)
    SI tu préfères la formule en notation A1, tu vas dans la fenêtre Exécution de l'éditeur VBE (Ctrl+G) et tu tapes la commande suivante en supposant que la formule se trouve en G5 et qu'elle a déjà été encodée
    Voici le code généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(Lab!$A$10:$BZ$69,MATCH(1,(Lab!$A$10:Lab!$A$98=$A5)*(Lab!$B$10:Lab!$B$98=$B5)*(Lab!$C$10:Lab!$C$98=$C5),0),3+G$4)
    Pour que la formule s'adapte aux autres lignes, il suffit de taper l'instruction suivante (pour l'exemple la formule sera insérée sur la plage G5:G100)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("G5:G100").Formula = "=INDEX(Lab!$A$10:$BZ$69,MATCH(1,(Lab!$A$10:Lab!$A$98=$A5)*(Lab!$B$10:Lab!$B$98=$B5)*(Lab!$C$10:Lab!$C$98=$C5),0),3+G$4)"
    Il ne fait oublier de préciser la filiation complète de la plage (Classeur + feuille)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Bonjour Philippe,

    Je viens de rentrer du boulot ... avoir une réponse à ma question c'est juste MAGNIFIQUE. Effectivement le processus énuméré fonctionne très bien et aussi simplement que cela. C'est GENIAL ! et cela marche aussi pour les formules matricielles .... ENORME !

    Merci Philippe pour ce tuyau ! Ma route sera encore longue sur ce projet mais ton aide m'a fait gagné beaucoup de temps.

    Merci encore

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/08/2012, 17h49
  2. Réponses: 10
    Dernier message: 28/01/2010, 11h26
  3. [E-07] Difficulté avec la formule index/equiv
    Par Bloubee dans le forum Excel
    Réponses: 5
    Dernier message: 03/11/2008, 09h24
  4. Réponses: 17
    Dernier message: 03/01/2008, 13h40
  5. Réponses: 1
    Dernier message: 23/08/2006, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo