Bonjour à tous,
je me demande s'il est possible de programmer quelque chose qui me permettrait de lancer une macro juste avant que s'affiche la fenêtre de recherche (CTRL + F) de Excel lorsqu'un utilisateur la sélectionne. Je me demande donc comment, de manière systématique, arriver à coller une macro à cette fonction.
Par exemple, chaque fois que l'utilisateur fait un CTRL+F, la cellule A1 est sélectionnée.
En affectant le raccourci à une macro Ctrl+F, tu peux lancer ce quetu veux comme code avant d'afficher la boîte de dialogue xlDialogFormulaFind.
Simple mais efficace je pense.
Salut Michel, Softmama, le forum,
alors voici les conclusions suite aux propositions soumises plus haut.
@ Michel : La piste vers OnKey était très pertinente. J'ai effectivement trouvé de nombreux posts sur le forum à ce sujet, avec d'excellents exemples (notamment ceux de Pierrot). Par contre, cette méthode n'arrive pas à remplir tout à fait mon besoin.
@ Softmama : Votre piste est celle que j'ai utilisée. Effectivement, pour lancer systématiquement une macro ou simplement un petit bout de code avant une commande Excel (CTRL+F dans mon cas), affecter le même raccourci clavier que la commande (CTRL + F ici) à une nouvelle macro et ensuite recréer la commande après la mini opération fonctionne à merveille.
Ce dernier fonctionne autant sur 2003 que 2007. Pas testé sur les autres versions par contre.
Donc, finalement, voici ma soluton.
Je cherchais à décocher systématiquement la case "Totalité du contenu de la cellule" lors d'une recherche. La solution consiste donc à lancer une fausse recherche en ne demandant pas la totalité du contenu (LookAt:=xlPart). Comme Excel conserve en mémoire la dernière demande, alors quand j'affiche le CTRL + F, la case est décochée à tous coups.
À noter que j'ai attribué le contrôle clavier "CTRL+F" à cette macro.
VB:
Sub Decocher_la_case()
Set Lig = Range("A1").Find("", LookIn:=xlValues, LookAt:=xlPart)
If Not Lig Is Nothing Then Exit Sub
Application.CommandBars.ExecuteMso "FindDialogExcel"
End Sub