Aide macro multi recherche

  • Initiateur de la discussion Initiateur de la discussion guit85
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guit85

XLDnaute Nouveau
Bonjour à toutes et à tous,

Voilà mon problème :

J'ai un logiciel à mon travail qui ouvre un fichier excel dans lequel je dois choisir des plans.

Mais peu importe que le produit diffère, a peu de choses près les noms sont les mêmes.

J'ai donc créer une macro qui je pense peut être allégée 😉

Code:
Columns("G:G").Select
    Selection.Copy
    Columns("L:L").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Cells.Find(What:="IMPLANT").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="COMPLEMENT CHASSIS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION LAMBOURDES CHASSIS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PROFILS U BAS CLOISONS").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="EVACUATIONS /").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="COTE PORTE FRONTON").Activate
ActiveCell.FormulaR1C1 = "1"
    Selection.Find(What:="MUR C").Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PIGNON").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POUTRE FAITIERE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PASSAGE DES CABLES").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CHARPENTE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PERCAGE TOIT").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CLOISONS SOUS ").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="PROFILS U").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT EAU").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION CIRCUIT").Activate
ActiveCell.FormulaR1C1 = "1"
Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT GAZ").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="LEGENDE SYMBOLES ELECTRIQUE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT ELECTRIQUE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="CIRCUIT CABLES TERRE").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="VUE INTERIEURE ").Activate
ActiveCell.FormulaR1C1 = "1"
     Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
    Selection.FindNext(After:=ActiveCell).Activate
    ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="EVACUATIONS EAUX").Activate
ActiveCell.FormulaR1C1 = "1"
Cells.Find(What:="POSITION DES CONVECTEURS").Activate
ActiveCell.FormulaR1C1 = "1"


Qu'ai je fait?
Et bien je demande d'abord de copier une ligne (juste la valeur) puis je demande de rechercher les différents plans et de changer la valeur de la case (ici = 1). Parfois il y en a plusieurs commençant par le même mot (ex :VUE INTERIEURE), je demande donc à ma macro de rechercher le suivant.
De plus j'ai désactivé les erreurs d'exécution car selon le produit fini il n'y a pas tout le temps tout ces plans.

Mes demandes d'aides?
1°) Je souhaiterai que plutôt intégrer les mots à rechercher dans la macro, qu'elle vienne rechercher dans un tableau(sur autre fichier excel?), ce qui admettrai des changements plus faciles (je pense à une boucle non? mais j'ai pas le niveau 😱 )
2°) En fait je donne la valeur 1 car pour choisir le plan il faut que la case correspondante au plan dans la colonne "A" passe à 1 (sinon c'est 0)....... NOTA : j'ai donc truandé en ajoutant dans la macro un copié collé dans la colonne A:A d'un "=Si(Lx=1;1;0)" !!!

En soit la macro marche pas de soucis, mais l'amélioration continue fait pas de mal !!

Voilà 😛

Merci !
 
Dernière édition:
Re : Aide macro multi recherche

Bonjour Guit85 et Bienvenue sur le Forum,

Dans tes explications, tu nous indiques que tu copie une ligne ???

Columns("G:G").Select
Selection.Copy
Columns("L:L").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Pour moi, ce code copie une colonne !

Après, tu recherches les différents plans mais je pense que si tu faisais parvenir une pièce-jointe avec la colonne G et les titres, cela faciliterait la compréhension de la demande .


A te relire

René
 
Re : Aide macro multi recherche

Merci de l’accueil !!

Ah oui désolé il s'agit bien d'une colonne pour la copie

Voici la base du fichier je serais adapter selon vos modifications... du moins je l’espère !

J'ai mis quelques indications n'hésitez pas si il faut plus d'info.
 

Pièces jointes

Re : Aide macro multi recherche

Bonjour, Joyeuse Pâques 😉

Alors, Oui ok la tu fais une copie mais ça n'est pas là que le bas blesse un copier/collage spécial suffit.

C'est surtout la suite qui "pose problème" ou demande amélioration. La recherche de plusieurs plans.

Car comme je l'ai expliqué je souhaiterai avoir un fichier "A" avec des noms de plans. La macro vient les chercher pour trouver les lignes correspondante dans le fichier "B" qui est une extraction excel en fichier .temp

Merci
 
Re : Aide macro multi recherche

Bonjour Guit85, bonjour le Forum.

Voici l'organigramme de travail que je pense que tu souhaites ?
Tu reçois un fichier Excel "B" qui ne possède pas de macro et dans lequel tu vas choisir certain plans (Pas tous)?

Pour cela:
Copier cette feuille dans un autre fichier "Excel" "A" en feuil1 , qui contient la macro.
Choisir les plans utiles en plaçant "1" dans la colonne "A".
Lancer la macro.
Les autres plans inutiles sont effacés.

Dis-moi si cela est OK ou précise les changements ?

Pour cela, nous avons besoin du fichier Excel "B" (avec le nom exact), que tu reçois.
 
Re : Aide macro multi recherche

Re 😉

Alors ,

"Tu reçois un fichier Excel "B" qui ne possède pas de macro et dans lequel tu vas choisir certain plans (Pas tous)?"

Non disons qu'en fait un logiciel GPAO, lors de la sélection d'un produit m'ouvre un fichier Excel(Appelons le GPEX). Effectivement celui ci n'a pas de macro, mais je ne souhaite pas le copier, la macro est intégré à Excel grâce au macro personnel. Je réexplique étape par étape.

Les étapes :

1°) Je sélectionne un produit, le logiciel Gpao ouvre un fichier Excel avec tout les plans disponibles
2°) Je ne souhaite pas avoir tout les plans mais juste une sélection pré définie.
3°) Pour sélectionner les plans qui seront ensuite traités par un autre logiciel et sorti sur format PDF, je dois mettre un "1" dans la colonne "A" dans la case correspondant à la ligne du plan sélectionné;
=> Ex : Sur la ligne G9 il y a le plan Évacuation, je souhaite l'avoir je mets 1 en A9.
Et ainsi de suite jusqu'à sélection de tous mes plans.


Ma macro :

1°) Me permet de copier la ligne G sur le fichier GPEX, car (et là c'est comme ça...) je visualise le nom des plans mais ils sont la résultantes d'une rechercheV (ça c'est le logiciel qui gére). Donc à moins que je me trompe la recherche d'un mot ne peut se faire que sur un mot il ne lit pas la résultante?
=> Ex: G9 je vois Évacuation mais la formule permettant de l'avoir est "=RECHERCHV(patatipatata)" donc Excel ne comprenai pas quand je faisais une recherche sur le terme Évacuation
Donc je fais un copier / coller spéciale la ligne G en L en demandant que la Valeur afin que ça soit au format texte détectable par Excel.
2°) De rechercher les plans que j'ai choisi d'où les nombreuses lignes "ActiveCell.FormulaR1C1 = "1" Cells.Find(What:="COMPLEMENT CHASSIS").Activate"...
3°) Lorsque excel trouve un plan il remplace la case ainsi sélectionné et lui donne la valeur 1.

Je souhaite :

1°) Ne pas modifier l'étape 1°) de ma macro qui est dans tout les cas nécessaire.
2°) Plutôt que l'étape 2°) soit en saisissant les plans qui m'intéressent dans la macro que ce soit la macro qui vienne "prendre" la liste de plans à rechercher dans un fichier Excel (peu importe qu'il ne serve qu'à ça !) mais qui permet de modifier les plans à volonté ou d'en ajouter/en enlever... plus facilement.
3°) Quand le plan est trouvé que sa Case dans la colonne A passe à 1.

Je comprends en expliquant la complexité de la compréhension ^^

Merci
 
Re : Aide macro multi recherche

1°) Je sélectionne un produit, le logiciel Gpao ouvre un fichier Excel avec tout les plans disponibles
Supposons que GPAO ouvre une feuille que tu recopie dans cet exemple ?

2°) Je ne souhaite pas avoir tout les plans mais juste une sélection pré définie.
Sur la copie (exemple fourni),je place à 1 les plans que je garde ?

3°) Pour sélectionner les plans qui seront ensuite traités par un autre logiciel et sorti sur format PDF, je dois mettre un "1" dans la colonne "A" dans la case correspondant à la ligne du plan sélectionné;

execution de la macro exemple.

est-ce que cela convient ?

Cela n'est pas complet mais constitue un début.
Pour ajouter un tableau prédéfini , tu dois nous le procurer !


A+

René
 

Pièces jointes

Dernière édition:
Re : Aide macro multi recherche

Bonjour,

Désolé du retard dans ma réponse,

voici un fragment du fichier pris de la gpao.

Comme tu peux le voir ma macro recherche "implant" et change la valeur de la case en 1.

je souhaiterai que ça ne soit pas la valeur de la case qui passe en 1 la case dans la colonne A correspondant à la ligne où le mot a été trouvé :

Implant trouvé en G6? Hop A6 = 1.

Ceci est la première étape.

Ps : J'ai retouché ma macro d'origine car j'ai trouvé entre temps une fonction de recherche plus complète.
Et si tu pouvais convertir mon fichier en XLS sinon je peux pas l'ouvrir à la maison 😛
En espérant que ça te parle mieux.

Merci
 

Pièces jointes

Re : Aide macro multi recherche

Bonjour Guit,

Quel fichier convertir en Xls et où est il ??

Sur l'exemple en ligne 6 , ne figure pas "implant" et même dans aucune ligne ?
Peut-être faut-il prendre une partie du texte de la colonne G ?

Dans un premier temps , nous aurions besoin de ton tableau contenant tous les noms de plans que tu serais susceptible d'utiliser.
Nous aurions besoin d'une feuille "Guit85 excel.xlsx" plus fournie (environ 30 ligne).

Je pense que ton programme pourrait s'organiser comme ceci !

-Depuis une "listbox", contenant tous les plans existants , que tu vas nous fournir depuis le tableau des plans demandé, nous choisirons les plans recherchés pour le travail.
-Avec ce choix, le programme recherchera les plans dans la feuille "Guit85 excel" et les copiera dans la feuille maitre.
-Le traitement à "1" sera effectué.
Lors d'un autre traitement, tu recommence ton choix dans la listbox et tu obtient donc un nouveau tableau .

En attendant les pièces demandées, cette façon de procéder te conviendrait-elle ?

Je part en vacance 15 jours dans un village perdu, où internet a du mal à passer .


A+

René
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
422
Réponses
22
Affichages
3 K
Réponses
17
Affichages
1 K
Retour