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 -
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 ?
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:
- Recherche sur excel ctrl
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment trier par ordre alphabétique sur excel - Guide
- Comment calculer la moyenne sur excel - Guide
2 réponses
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 !;)
<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 !;)
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
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
Quelqu'un aurait-il une solution pour contourner les "SendKeys"? Merci d'avance !!