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

Roland2008 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
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 ?

2 réponses

Roland2008 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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