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 :

Macro pour recherche multiple à partir d'une liste


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Macro pour recherche multiple à partir d'une liste
    Bonjour à tous,

    Je suis novice sous Excel et j'aimerai pouvoir faire une macro qui me permettrait de faire une recherche et afficher le résultat.

    Dans mon classeur Excel, j'ai 2 feuilles nommées "Données" et "FC".

    Dans "Données" ma plage pour effectuer ma recherche se situe de la cellule G1:G54

    ex : G1 = PAU
    G2 = BEN
    G3 = POR
    etc...

    Dans "FC" je dois vérifier si dans la cellule "B17:B3000" je trouve cette valeur.

    ex : B17 = TERRAIN PAU
    B18 = PAU MAISON
    B19 = CHAMBRE PAU MAISON
    idem pour les autres cellules à la place de PAU j'aurai soit BEN, POR etc...

    Si la valeur est trouvée, j’inscrirai le résultat PAU, POR, BEN ... dans la cellule AI17:AI3000 de la feuille "FC".

    Pourriez-vous m'aider la dessus s'il vous plait et comment faire pour exécuter la macro?

    Cordialement.

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 365
    Points : 631
    Points
    631
    Par défaut
    Je pense que tu devrais démarrer avec l'enregistreur de macro
    pour avoir des pistes pour atteindre ton objectif


    puis indiquer ou tu bloque sauf si tu arrive au bout.....

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    la fonction InStr() permet de trouver une chaine dans une autre

    avec une boucle et le tour est joué
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    déjà sans boucle juste via une formule de calculs et ce, même en VBA …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    Et merci pour vos conseils, je vais tester vos méthodes et vous tiendrai informer de mon avancement.

    Pour la boucle, celle-ci me permettrait d'éviter d'écrire trop de ligne de commande.

    Car pour mon exemple dans ma feuille FC dans la cellule B17 je peux avoir soit PAU ou BEN ou POR, j'ai en tout 54 mots clés à chercher.

    Et la liste des 54 mots clés se trouve sur la feuille DONNEES.

    voila le topo

    Cordialement.

  6. #6
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut re peut être une piste boucle
    Hello,

    J ai peut-être une piste que tu pourrais modifier pour ton utilisation
    Déjà fait quelques modifications pour toi
    Issus d un post similaire de ce jour

    À tester dans une copie de ton classeur

    Bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
     
    Sub Test()
    Dim CompareRange As Variant, ChangeRange As Variant, x As Variant, y As Variant
    Dim DerlG As Long, DerlB As Long
     
    DerlG = Sheets("Données").Range("G" & Rows.Count).End(xlUp).Row
    DerlB = Sheets("FC").("B" & Rows.Count).End(xlUp).Row
    'en supposant que tes plages débute en cellule 1 si pas modifier
    Set CompareRange = Sheets("Données").Range("G1:G & DerlG) 'fix Range de H1 a dernière cellule  du Range H
    Set ChangeRange = Sheets("FC").Range("B1:B" & DerlB) ' fix Range de D1 a dernière cel du Range D
     
    'Pour chaque cel de la colonne à vérifier 
    'Verifie avec chaque cellule critere si valeur est contenue
    'Si équivalent trouver dans Range de comparaison
    ' modifié cel en cours + 33 à droite pour atteindre col AI
     
     For Each x In ChangeRange
        For Each y In CompareRange
          If x Like "*" & y & "*" Then X.offset(0,33).Value = y
        Next y
     Next x
     
    End Sub
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  7. #7
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut mfoxy,

    merci pour ton aide, cela répond parfaitement à ma demande.

    Je peux clôturer cette discussion en résolu.

    Cordialement.

  8. #8
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut mfoxy,
    Je me suis précipité dans ma clôture de ce post.

    car dans ma feuille data j'ai 2 colonnes: nom des villes et code quartier
    ex: je prends / comme séparateur de colonne

    BRAS PANON/BPA
    BRAS PANON/SDA
    ETANG SALE/ETS
    LA PLAINE DES PALMISTES/PPA
    LA POSSESSION/DOS
    LA POSSESSION/POS
    LA POSSESSION/RGA
    LE PORT/POR
    LE PORT/RGA
    LE TAMPON/MVH
    LE TAMPON/PDC
    LE TAMPON/PON
    LES AVIRONS/AVI
    PETITE ILE/CAF
    PETITE ILE/MVH
    PETITE ILE/PTI
    SAINT ANDRE/SAD
    SAINT BENOIT/ANN
    SAINT BENOIT/BEN
    SAINT DENIS/BRE
    SAINT DENIS/BRU
    SAINT DENIS/CAM
    SAINT DENIS/CLO
    SAINT DENIS/MON
    SAINT DENIS/SDE
    SAINT JOSEPH/JOS
    SAINT JOSEPH/VIN
    SAINT LEU/CHA
    SAINT LEU/LEU
    SAINT LEU/PSL
    SAINT LOUIS/LOU
    SAINT LOUIS/RSL
    SAINT PAUL/BDN
    SAINT PAUL/FLE
    SAINT PAUL/GIL
    SAINT PAUL/GUI
    SAINT PAUL/PAU
    SAINT PAUL/POR
    SAINT PAUL/SBA
    SAINT PAUL/SLH
    SAINT PAUL/TAN
    SAINT PAUL/TBA
    SAINT PIERRE/CAF
    SAINT PIERRE/MVH
    SAINT PIERRE/PON
    SAINT PIERRE/RCA
    SAINT PIERRE/SPI
    SAINTE MARIE/BSJ
    SAINTE MARIE/C9F
    SAINTE SUZANNE/DRI
    SAINTE SUZANNE/SAD
    SAINTE SUZANNE/SUZ
    TROIS BASSINS/SBA
    TROIS BASSINS/TBA

    La boucle fonctionne bien mais me donne pas le résultat voulu sur certains critères.

    exemple ci-dessous

    Nom : Capture d’écran 2018-04-20 à 19.17.00.png
Affichages : 467
Taille : 104,6 Ko

    la colonne résultat j'ai mis mes annotations.

    Dans l'attente d'une aide.

    Cordialement.

Discussions similaires

  1. [XL-2007] Macro mail individuel personnalisé à partir d'une liste d'adresses
    Par AntoineHubert dans le forum Excel
    Réponses: 2
    Dernier message: 02/08/2016, 09h40
  2. [XL-2010] Recherche a partir d'une liste
    Par AnneLiseA dans le forum Excel
    Réponses: 11
    Dernier message: 25/08/2015, 16h50
  3. [XL-2010] Macro pour renommer des fichiers à partir d'une liste de nom de fichiers
    Par thomahh dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/01/2013, 17h03
  4. Macro pour écrire un mot d'une liste donnée
    Par oc_alex86 dans le forum Programmation (La)TeX avancée
    Réponses: 2
    Dernier message: 10/12/2011, 15h55
  5. VBA sous excel - Macro - Création de feuilles à partir d'une liste
    Par Sylione dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 09h42

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