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 !

Potentis

XLDnaute Occasionnel
bonjour,
je voudrais créer une macro faisant une recherche d'un mot sur tous les feuilles de mon classeur
on m'a suggeré d'utiliser une boucle for avec instr(), les mot rechercher sont des noms d'acteurs, chanteurs, ou un mot dans un titre de film ou de chanson

est ce que quelqu'un peut m'aiguiller un peu en détail sans me donner de soluce ?

Merci d'avance
 
Re : boucle recherche

salut 🙂

2 indices, sans soluces :

-faire une boucle sur toutes les feuilles =for each ws in worksheets

-faire une recherche sur chaque feuille, regarde du coté de .find (l'aide vba donne un exemple de boucle, tres pratique)

voilà, c'est peu, mais tout y est ou presque.

salut
 
Re : boucle recherche

Merci Hervé,
-for each et in worksheets ok je vois mais pour ws je vais chercher

-find c'est comme si j'utilise Edition puis Rechercher ok mais dans ce cas je ne prend plus instr() ???

la personne qui ma suggeré instr() c'est pour pouvoir (euh je crois) faire une recherche sur une partie d'un mot, par ex si je cherche [SIZE=-1]Arnold Schwarzenegger comme je ne connais pas l'ortographe exacte de son nom je vais devoir y aller a taton en mettant warze ou negger a moins que tu me confirmes que c'est possible avec .find ???

j'attends ta réponse pour aller fouiller et te proposer un début de piste
[/SIZE]
 
Re : boucle recherche

re

ws, est juste une variable (à déclarer : dim ws as worksheet), et qui va te permettre de référencé la feuille de recherche dans le reste du code, exemple :

ce code inscrit en A1 de chaque feuille du classeur la date du jour :

dim ws as worksheet

for each ws in worksheets

ws.range("a1")=date
next ws


je te confirme que tu pourras tester seulement une partie de texte par .find. fait un essai avec le menu edition/rechercher.

instr va t'obliger à faire une boucle sur toutes les cellules des feuilles, du style :

dim ws as worksheet
dim cellule as range

for each ws In worksheets
for each cellule In ws.usedrange
If instr(1, cellule, "warze") > 0 then
msgbox cellule.address
end if
next cellule
next ws

donc, ceci peut etre lent si tu as beaucoup de données, contrairement au .find

voilà 🙂

salut

 
Re : boucle recherche

j'avais déjà enregistré une macro en utilisant Edition Recherche pour voir un peu le code mais ok vu ta confirmation pour .find c'est tout bon je retourne dans mes recherches

j'ai compris pour ws comme tu as mis ws.usedrange

je sens que j'ai tout ce qu'il faut a moi de trouver maintenant

Merci 🙂
 
- 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
4
Affichages
332
P
Réponses
4
Affichages
1 K
Réponses
9
Affichages
972
Retour