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 :

Boucle Macro _ Recherche Verticale


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Boucle Macro _ Recherche Verticale
    Je veux tout simplement faire une macro avec une recherche verticale qui boucle sur "i" pour qu'il balaye toutes les infos.

    La zone de calcul est dans l'onglet PLX et la reponse dans l'onglet BDD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Cells(i, 4).Select
    ActiveCell.FormulaR1C1 = _
    "=IF(EXACT(trim(RC[-3]),VLOOKUP(trim(RC[-3]), BDD, 1)),VLOOKUP(trim(RC[-3]), BDD, 2),""Non Codifié"")"
    Le plus surprenant est que cette macro ci-dessus fonctionnne quand je la fait tourner dans un fichier que j'ai développé il y a 5 ans.
    Je peux modifier le fichier, mettre des nouvelles valeurs, modifier la recherche; tout est ok

    Très surprenant si je change le nom de l'onglet BDD par n'importe quel nom sans changer la "requête", ce programme fonctionne MAIS ne pas changer BDD dans la requête.

    Si je veux recréer, cette recherche RIEN; et je dois créer ce type de recherche ?????
    Je ne sais plus comment faire cette boucle dans une macro

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    j'ai rien compris :

    tu ne sais plus comment faire une boucle ?
    ou ta boucle ne marche plus ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Suite
    dans une ancienne application cette recherche fonctionnait; je veux essayer de l'adapter impossible.

    Je pense que la solution est que BDD est une variable qui représente les données du feuillet concerné.

    Mais je ne me souviens plus comment on attribue un sheet à une variable si c'est cela la réponse à mon pb.

    J'avoue je ne suis pas très claire car je crise, ne sacahnt plus recréer des programmes.

    Merci pour ton aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Au vu de ta formule, BDD n'est pas une variable, mais le nom donné manuellement à une plage de cellules.

    Starec

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    je pense que BDD est plutot le nom donnée à une plage
    elle ne peut pas etre une variable car sinon tu devrais ecrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...VLOOKUP(trim(RC[-3]), " & BDD & ", 1)),...

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Oui mais toutes ces donnes sont dans un onglet, un sheet

    Alors comment Vlookup s'y retrouve et sait où il va chercher ?

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    il s'y retrouve justement parceque non seulement ta sheet s'appelle BDD mais aussi la plage de données , il regarde dans la plage qui s'appelle BDD

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Non justement je peux changer l'onglet sans que cela influence la macro.

    C'est pourquoi je cherche désespérement comment j'ai peux declarer ces cellules sous l'appellation BDD sans le trouver dans les macro

  9. #9
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    si c'est ce que tu demandes, car ta question n'est pas très claire,
    pour nommer une plage de cellule sous le nom BDD, tu peux faire en VBA ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ActiveWorkbook.Names.Add Name:="BDD", RefersToR1C1:="=Feuil1!R3C2:R10C5"
    Pour supprimer cette "plage nommée",
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ActiveWorkbook.Names("BDD").Delete
    Pour le faire dans excel, Insérer -> Nom -> Définir
    Via cette commande, tu peux aussi supprimer la plage nommée.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Mille Mercis, très efficace

    Maintenant je peux continuer ma route; je confirme que les Forums c'est TOP et je vais me faire un devoir de regarder régulièrement pour aider en retour

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

Discussions similaires

  1. [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, 13h22
  2. Pb macro de recherche boucle infinie
    Par Goupsy dans le forum VBA Word
    Réponses: 2
    Dernier message: 19/10/2008, 17h48
  3. macro : fonction recherche
    Par M8407108 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/12/2007, 23h45
  4. Macro de recherche dans WORD
    Par damall dans le forum VBA Word
    Réponses: 11
    Dernier message: 25/08/2007, 11h13
  5. Macro de recherche/remplace automatique
    Par phil011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/08/2007, 11h00

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