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

Macros et VBA Excel Discussion :

Programmer une recherche verticale en VBA qui serait dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Programmer une recherche verticale en VBA qui serait dynamique
    Bonjour,

    Je débute en VBA et je sens que j'ai besoin d'aide.

    Voici la formule que j'ai obtenu avec le développeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _
            "=IF(ISNA(VLOOKUP(RC[-5],PDCQ1!C1:C2,2,FALSE)),"""",VLOOKUP(RC[-5],PDCQ1!C1:C2,2,FALSE))"

    En l'état la formule fonctionne si la matrice se nomme PDCQ1!C1:C2 mais en fait je veux pouvoir modifier cela en déclarant en amont une commande inputbox où je saisis la matrice. Selon la matrice choisie, mes nombreux onglets se mettront ainsi à jour tous seul et ce sera le paradis pour moi

    Merci pour votre aide

    Sophie

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut sophie.m et le forum
    Déjà, ActiveCell, c'est une connerie : on ne sait pas quelle est la cellule active et donc, difficile de comprendre. Si je me mets en F7, ta formule devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ESTNA(RECHERCHEV(A7;PDCQ1!$A:$B;2;FAUX));"";RECHERCHEV(A7;PDCQ1!$A:$B;2;FAUX))
    Là, je comprend mieux Pour la cellule H8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("H8").FormulaLocal = _
            "=SI(ESTNA(RECHERCHEV(C8;PDCQ1!$A:$B;2;FAUX));"""";RECHERCHEV(C8;PDCQ1!$A:$B;2;FAUX))"
    En restant sur le fait d'écrire la formule en R1C1, on obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("H8").FormulaR1C1Local = _
            "=SI(ESTNA(RECHERCHEV(LC(-5);PDCQ1!C1:C2;2;FAUX));"""";RECHERCHEV(LC(-5);PDCQ1!C1:C2;2;FAUX))"
    Mais attention, suivant la formulation, la désignation de la plage sera différente : FormulaLocal : "A:B", FormulaR1C1Local : "C1:C2".
    Après, ce n'est que de la concaténation de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("H8").FormulaR1C1Local = _
            "=SI(ESTNA(RECHERCHEV(LC(-5);PDCQ1!" & MaPlage & ";2;FAUX));"""";RECHERCHEV(LC(-5);PDCQ1!" & MaPlage & ";2;FAUX))"
    en partant du principe que MaPlage est une variable string contenant l'adresse à tester. ici ce devrait être MaPlage="C1:C2"
    A+

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/02/2015, 18h17
  2. Réponses: 1
    Dernier message: 22/02/2014, 22h16
  3. [XL-2003] Grande valeur après une recherche verticale
    Par bolide7 dans le forum Excel
    Réponses: 6
    Dernier message: 24/06/2012, 18h56
  4. [XL-2010] Macro ou Formule pour une recherche verticale avec condition
    Par Orsaylg dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2010, 14h22
  5. Réponses: 2
    Dernier message: 08/07/2009, 14h19

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