Ctrl+F "Rechercher tout" et "Dans tous le classeur"

Fermé
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016 - 13 janv. 2016 à 14:47
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 13 janv. 2016 à 22:53
Bonjour,

Grâce à l'aide très efficace des contributeurs, j'ai trouvé une macro me permettant, à partir d'un fichier excel, d'en ouvrir un autre tout en faisant un Ctrl F pour le terme recherché (ici "TOTO") :

<Code>
Range("L14").Select
Workbooks.Open Filename:= _
"Chemin vers le fichier"
ActiveWindow.Visible = False
Windows("Nom du Fichier.xlsx").Visible = True
'Déclarations
Dim Nom As String
Nom = "TOTO"
SendKeys Nom
SendKeys "{ENTER}"
SendKeys "{DOWN}"
SendKeys "{ENTER}"
CommandBars("Edit").Controls.Item(14).Execute
End Sub
<Code>

Le problème, c'est que j'aimerais non seulement ouvrir la boite de dialogue Ctrl+F mais encore sélectionner automatiquement les boutons "rechercher tout" et "options > dans classeur". Le but étant de lancer une recherche de toutes les occurrences du terme recherché, et dans toutes les feuilles du classeur.

Je n'arrive pas à formuler cela avec l'enregistreur de macro et aucun forum ne semble avoir répondu à la question...

Quelqu’un aurait une solution ?

A voir également:

2 réponses

Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
13 janv. 2016 à 15:00
Juste après avoir de posté ma question j'ai trouvé la réponse, bien qu'elle soit en suspens depuis plusieurs jours. En fait il suffit d'envoyer une série de commande pour que la formule "clique" directement sur le bon bouton :

<Code>
SendKeys "{TAB 2}"
SendKeys "{DOWN}"
SendKeys "{ENTER}"
SendKeys "{TAB 6}"
SendKeys "{ENTER}"
<Code>

Ce qui donne :

<Code>
Range("L14").Select
Workbooks.Open Filename:= _
"Chemin vers le fichier"
ActiveWindow.Visible = False
Windows("Nom du Fichier.xlsx").Visible = True
'Déclarations
Dim Nom As String
Nom = "TOTO"
SendKeys Nom
SendKeys "{ENTER}"
SendKeys "{DOWN}"
SendKeys "{ENTER}"
SendKeys "{TAB 2}"
SendKeys "{DOWN}"
SendKeys "{ENTER}"
SendKeys "{TAB 6}"
SendKeys "{ENTER}"
CommandBars("Edit").Controls.Item(14).Execute
End Sub
<Code>


Je tenais à apporter ma contribution à un forum qui m'a bien aidé auparavant !;)
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
13 janv. 2016 à 16:32
En fait, l'envoi des "SendKeys" ne marche que si la boîte de dialogue reste toujours dans le même format (ici rechercher dans tout le classeur). Si je change ce format (rechercher dans la feuille par exemple), les "SendKeys" vont partir, mais sur les mauvaises touches. Et donc les options "Rechercher tout" et "dans tout le classeur" ne s'affichent pas forcément.

Quelqu'un aurait-il une solution pour contourner les "SendKeys"? Merci d'avance !!
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213
13 janv. 2016 à 22:53
Bonjour,

Tu devrais utiliser la méthode .find plutôt.
Cherche dans l'aide vba range.find (pas find tout court), et à aussi : https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
Si besoin il faudra que tu boucles sur les feuilles du classeur.
eric
0