Définir Excel pour rechercher dans l'intégralité du classeur par défaut

12

Dans Microsoft Excel, lorsque je recherche à l'aide de CTRL+ F, par défaut, il recherche uniquement dans la feuille de calcul actuelle.

Comment puis-je le configurer pour qu'il recherche par défaut dans tout le classeur? Je l'ai Office 2010. Est-ce seulement possible? Est-il possible de définir cela pour un classeur ou une feuille de calcul spécifique? Je suis d'accord avec une modification du registre si c'est ce qu'il faut.

Remarque: Près de 10 ans plus tard, j'aimerais toujours le faire, mais maintenant pour Excel 2016/2019.

Joel Coehoorn
la source

Réponses:

3

Vous pouvez le faire avec une macro Workbook_Open dans le module ThisWorkbook, comme ceci:

Private Sub Workbook_Open()

Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"

End Sub

Cela le définira pour votre session pour le classeur dans lequel vous vous trouvez.

Pour que ce soit toujours la valeur par défaut, vous devez créer un classeur de macros personnelles .

Lance Roberts
la source
1
Je préfère ne pas utiliser de macro pour cela.
Joel Coehoorn
2
@Joel, les paramètres seraient probablement stockés dans le fichier .pip pour Excel, qui est facile à trouver, mais en binaire, et je ne peux pas trouver d'éditeur spécifique pour cela (ce serait un excellent projet). Vous pourriez probablement obtenir un éditeur hexadécimal standard et le travailler, mais ce serait un projet.
Lance Roberts
2

J'ai inclus une modification pour que cela fonctionne si votre Excel est en espagnol (comme le mien)

Private Sub Workbook_Open()

Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)

Application.CommandBars.FindControl(ID:=1849).Execute

Select Case lCountryCode
Case 34 'spanish
    SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
    SendKeys "%(t)%(h)W~{ESC}"
End Select


End Sub
erik
la source
0
  1. Sélectionnez l'icône Rechercher / Sélectionner dans le ruban d'accueil

  2. Cliquez sur Rechercher

  3. Cliquez sur la case "options" en bas à droite

  4. Sur le côté gauche, il y a une liste déroulante qui se lit, "Dans"

  5. Sélectionnez "Feuille" ou "Classeur"

Ce site explique comment changer la valeur par défaut

MCC
la source
1
Cela ne fonctionne pas, pour deux raisons. Tout d'abord, cette option n'est pas enregistrée avec chaque document. Ouvrez une feuille de calcul, apportez la modification, enregistrez la feuille de calcul, fermez Excel , rouvrez la feuille de calcul, et c'est comme ça. Deuxièmement, même si cela a été enregistré avec le document, je dois ouvrir un grand nombre de documents qui n'ont pas été créés sur ma machine et qui auraient donc le (mauvais) réglage de la machine d'origine où ils ont été créés.
Joel Coehoorn
0

Les commandes Sendkeys suggérées par d'autres réponses ne sont pas encouragées. Dans le passé, la commande Sendkeys a entraîné des actions très inattendues, où vous devrez peut-être redémarrer l'ordinateur pour récupérer. Je recommanderais de rendre la routine locale et de l'exécuter à la demande uniquement. Pour plus de commodité, vous pouvez également lui affecter une clé cntl comme "q". L'option Workbook Within sera mémorisée pour le reste de la session.

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub
user314256
la source
0

J'ai eu un problème similaire. J'ai un bouton dans un classeur. Si le bouton est cliqué, je veux qu'Excel ouvre la boîte de dialogue de recherche avec l'option "rechercher dans tous les classeurs" déjà sélectionnée au lieu de la valeur par défaut "dans la feuille", quoi qu'il arrive.

De plus, je voulais que le bouton fonctionne en tenant compte des options cachées ou affichées et que quelqu'un fasse ou non des modifications manuellement. C'est délicat car Excel par défaut n'affiche pas les options au démarrage mais s'en souvient et les affiche à nouveau la prochaine fois si quelqu'un les a déjà affichées.

Pour vous assurer que les frappes fonctionnent, nous avons besoin d'une série de frappes qui définit le paramètre indépendamment de l'état initial. A pris un peu de bricolage, mais j'en ai trouvé un qui fonctionne.

Voici mon code pour la version anglaise d'Excel, pour les autres langues, vous devez modifier les clés en conséquence.

 Sub Commanbutton_Click()

      Cells(1, 1).Select

       SendKeys "^f", True
       SendKeys "{TAB 15}"
       SendKeys " ", True
       SendKeys "%t%t", True
       SendKeys "{TAB 2}", True
       SendKeys "{DOWN}{DOWN}{ENTER}", True
       SendKeys "%t%t", True

  End Sub

Vous pouvez l'essayer manuellement:

Appuyez sur CTRL + F pour la boîte de dialogue de recherche Appuyez 15 fois sur la touche TAB pour que vous atterrissiez sur "Options" ou sur la liste déroulante "Rechercher dans".

Espace presse et soit

1) Les options sont affichées ou 2) la liste déroulante est activée et rien ne se passe

Appuyez deux fois sur Alt + T pour réinitialiser le curseur dans la zone de saisie de recherche

Appuyez deux fois sur TAB, cela vous amènera à la recherche dans la liste déroulante, quoi qu'il en soit (car les étapes précédentes garantissent que les options sont en fait affichées!)

Appuyez deux fois sur la flèche BAS pour sélectionner "Classeur" et ENTER pour sélectionner

Appuyez deux fois sur ALT + T pour réinitialiser le curseur dans la zone de saisie de recherche.

J'espère que cela aide quelqu'un d'autre qui a un problème similaire. Beaucoup de googleurs m'ont seulement dit qu'il n'est pas possible de présélectionner "rechercher dans tous les classeurs" avec VBA mais que cela fonctionne!

Pour le faire fonctionner avec différentes langues, vous devez vérifier la langue et utiliser CASE pour passer à la bonne routine avec les bons raccourcis.

Malo
la source