Arguments pour xlDialogFormulaFind
Résolu/Fermé
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
-
Modifié par ButteDuLac le 21/11/2016 à 14:38
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 7 déc. 2016 à 19:03
ButteDuLac Messages postés 495 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 24 octobre 2020 - 7 déc. 2016 à 19:03
A voir également:
- Arguments pour xlDialogFormulaFind
- Vous avez entré un nombre insuffisant d'arguments pour cette fonction - Forum Excel
- Bash arguments - Astuces et Solutions
- Python est introuvable. exúcutez sans argument pour procúder ó l - Forum Python
- Python module not found, bien qu'il soit installé - Forum Python
- [Python] .py en exécutable ✓ - Forum Python
2 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
21 nov. 2016 à 15:24
21 nov. 2016 à 15:24
Bonjour,
Déjà la boite de dialogue xlDialogFormulaFind n'est pas la même que celle de Ctrl+F, tu n'y trouves pas 'Dans classeur/feuille'.
Match_case = vrai/faux => respect de la casse (majuscules)
Avec xlWhole (classeur?) ou xlPart (feuille?) : non => Cellule entière ou partie.
De toute façon cette boite sert à sélectionner la cellule suivante répondant aux critères, je n'en vois pas trop l'intérêt en vba. Oblige à utiliser ActiveCell pour connaitre la cellule.
Si l'utilisateur n'a pas à changer les paramètres ni à choisir entre plusieurs possibilités utilises plutôt Range.Find (voir aide).
Fixe bien les paramètres LookIn et LookAt car ils dépendent de la dernière utilisation de Ctrl+F
Si tu dois faire la recherche sur plusieurs feuilles c'est à toi de le gérer en la lançant sur les feuilles concernées par une boucle.
eric
Déjà la boite de dialogue xlDialogFormulaFind n'est pas la même que celle de Ctrl+F, tu n'y trouves pas 'Dans classeur/feuille'.
Match_case = vrai/faux => respect de la casse (majuscules)
Avec xlWhole (classeur?) ou xlPart (feuille?) : non => Cellule entière ou partie.
De toute façon cette boite sert à sélectionner la cellule suivante répondant aux critères, je n'en vois pas trop l'intérêt en vba. Oblige à utiliser ActiveCell pour connaitre la cellule.
Si l'utilisateur n'a pas à changer les paramètres ni à choisir entre plusieurs possibilités utilises plutôt Range.Find (voir aide).
Fixe bien les paramètres LookIn et LookAt car ils dépendent de la dernière utilisation de Ctrl+F
Si tu dois faire la recherche sur plusieurs feuilles c'est à toi de le gérer en la lançant sur les feuilles concernées par une boucle.
eric
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
22 nov. 2016 à 16:40
22 nov. 2016 à 16:40
En fait, pour la fenêtre régulière, c'est :
Mais je parlais bien de la commande
Je crois avoir trouvé la réponse ici : https://www.mrexcel.com/board/threads/value-find-dialog-box-macro.259489/
Ne me reste plus qu'à l'essayer, quand j'en aurai le temps... toutefois, il ne semble pas qu'on puisse chercher dans une feuille seulement, comme avec la FindControl.
Est-ce qu'on peut, avec la commande
Le fichier sera utilisé par des personnes n'ayant peu ou aucune connaissance en Excel, donc cela doit être le plus simple possible comme rendu pour eux.
Application.CommandBars.FindControl(ID:=1849).Execute
Mais je parlais bien de la commande
Application.Dialogs(xlDialogFormulaFind).Show
Je crois avoir trouvé la réponse ici : https://www.mrexcel.com/board/threads/value-find-dialog-box-macro.259489/
Private Sub FindBox()
Columns("A:A").Select
Application.Dialogs(xlDialogFormulaFind).Show "123", 2, 2, xlByRows, xlNext, True ',True
'arg1 text What text to find
'arg2 in_num LookIn formulas (1) or values (2) or comments (3)
'arg3 at_num LookAt whole cells (1 or xlWhole) or part (2 or xlPart)
'arg4 by_num SearchOrder xlByRows (1) or xlByColumns (2)
'arg5 dir_num SearchDirection xlNext (1) or xlPrevious (2)
'arg6 match_case MatchCase True or False
'arg7 match_byte MatchByte True or False
End Sub
Ne me reste plus qu'à l'essayer, quand j'en aurai le temps... toutefois, il ne semble pas qu'on puisse chercher dans une feuille seulement, comme avec la FindControl.
Est-ce qu'on peut, avec la commande
Application.CommandBars.FindControl(ID:=1849).Execute, prédéterminer que la recherche se fait dans une feuille seulement?
Le fichier sera utilisé par des personnes n'ayant peu ou aucune connaissance en Excel, donc cela doit être le plus simple possible comme rendu pour eux.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
Modifié par eriiic le 22/11/2016 à 19:45
Modifié par eriiic le 22/11/2016 à 19:45
Bonjour,
bien vu pour .FindControl(ID:=1849)
Est-ce qu'on peut, avec la commande Application.CommandBars.FindControl(ID:=1849).Execute, prédéterminer que la recherche se fait dans une feuille seulement?
Que ce soit l'une ou l'autre boite la recherche sera définie sur la feuille active si la boite est affichée à partir de vba, même si tu as sélectionné Classeur auparavant.
Par contre tu ne peux pas lui passer de paramètres, mais comme elle conserve les précédents paramètres utilisés tu peux faire une recherche bidon pour les fixer avant de l'afficher.
En général on défini systématiquement les 3 premiers paramètres, auxquel tu peux ajouter MatchCase si ça joue sur la recherche et que tu crains que qq'un l'ait cochée.
Et si tu veux le plus simple xlDialogFormulaFind devrait suffire.
Je te le redis vu que tu n'as eu aucune réaction : si tu sais ce qu'il faut chercher et que l'utilisateur n'apporte rien il faut utiliser .find sans boite.
eric
bien vu pour .FindControl(ID:=1849)
Est-ce qu'on peut, avec la commande Application.CommandBars.FindControl(ID:=1849).Execute, prédéterminer que la recherche se fait dans une feuille seulement?
Que ce soit l'une ou l'autre boite la recherche sera définie sur la feuille active si la boite est affichée à partir de vba, même si tu as sélectionné Classeur auparavant.
Par contre tu ne peux pas lui passer de paramètres, mais comme elle conserve les précédents paramètres utilisés tu peux faire une recherche bidon pour les fixer avant de l'afficher.
Set c = [A1].Find(what:="toto", LookIn:=xlValues, lookat:=xlWhole, _ searchorder:=xlByColumns, searchdirection:=xlNext, MatchCase:=False) Application.CommandBars.FindControl(ID:=1849).Execute
En général on défini systématiquement les 3 premiers paramètres, auxquel tu peux ajouter MatchCase si ça joue sur la recherche et que tu crains que qq'un l'ait cochée.
Et si tu veux le plus simple xlDialogFormulaFind devrait suffire.
Je te le redis vu que tu n'as eu aucune réaction : si tu sais ce qu'il faut chercher et que l'utilisateur n'apporte rien il faut utiliser .find sans boite.
eric
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
23 nov. 2016 à 20:57
23 nov. 2016 à 20:57
C'est que dans mon menu d'accueil, j'ai un bouton de recherche que je veux qu'il cherche dans tout le classeur. Dans une autre feuille spécifique, je souhaite qu'il cherche seulement dans cette feuille, en boucle. Je ne veux pas qu'ils aient accès à « remplacer » ou tout autre option pour que ça « semble » plus compliqué... Ce sont des personnes qui ne connaissent aucunement Excel.
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
Modifié par ButteDuLac le 23/11/2016 à 21:00
Modifié par ButteDuLac le 23/11/2016 à 21:00
« Je te le redis vu que tu n'as eu aucune réaction : si tu sais ce qu'il faut chercher et que l'utilisateur n'apporte rien il faut utiliser .find sans boite.
eric »
Il s'agit d'un registre de documents.
Je veux que les gens puissent chercher un document par mot clé, donc ce n'est pas une recherche prédéfinie.
eric »
Il s'agit d'un registre de documents.
Je veux que les gens puissent chercher un document par mot clé, donc ce n'est pas une recherche prédéfinie.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 240
Modifié par eriiic le 23/11/2016 à 22:42
Modifié par eriiic le 23/11/2016 à 22:42
Bonjour,
Ben le mieux c'est encore de leur apprendre à s'en servir, tout le monde est gagnant.
A partir de vba tu ne peux pas faire une recherche sur plusieurs feuilles directement via la boite de dialogue.
Donc soit tu leur apprends comment choisir Classeur dans la liste déroulante (faut pas être ceinture noire d'excel pour ça) , soit tu leur demande les mots clés dans une inputbox (ou un userform plus complet), fait un code qui balaie les feuilles pour chercher ce que tu veux et tu leur proposes le résultat de la recherche qu'ils choisissent le document.
Il y a peut-être mieux mais là c'est tellement abstrait sans fichier ni connaissance exacte du besoin.
eric
Ben le mieux c'est encore de leur apprendre à s'en servir, tout le monde est gagnant.
A partir de vba tu ne peux pas faire une recherche sur plusieurs feuilles directement via la boite de dialogue.
Donc soit tu leur apprends comment choisir Classeur dans la liste déroulante (faut pas être ceinture noire d'excel pour ça) , soit tu leur demande les mots clés dans une inputbox (ou un userform plus complet), fait un code qui balaie les feuilles pour chercher ce que tu veux et tu leur proposes le résultat de la recherche qu'ils choisissent le document.
Il y a peut-être mieux mais là c'est tellement abstrait sans fichier ni connaissance exacte du besoin.
eric
ButteDuLac
Messages postés
495
Date d'inscription
jeudi 5 mars 2009
Statut
Membre
Dernière intervention
24 octobre 2020
40
Modifié par ButteDuLac le 29/11/2016 à 17:15
Modifié par ButteDuLac le 29/11/2016 à 17:15
Bonjour,
« le mieux c'est encore de leur apprendre à s'en servir, tout le monde est gagnant » : cela signifierait que je doive m'asseoir avec 500 personnes pour leur montrer... votre conseil, bien que logique, est utopique, donc superflu!
« A partir de vba tu ne peux pas faire une recherche sur plusieurs feuilles directement via la boite de dialogue » : c'est faux, puisque justement, la fenêtre rechercher cherche directement dans plusieurs feuilles et c'est ce que je ne veux pas.
« soit tu leur apprends comment choisir Classeur dans la liste déroulante » : vous parlez de quoi au juste? Les seules listes déroulantes disponibles dans la fenêtre rechercher réduite sont « Rechercher par ligne/colonne » et « Regarder dans formules/valeurs/commentaires ». S'il y avait cette option, je n'aurais pas à poser cette question ici!
« (faut pas être ceinture noire d'excel pour ça) » : votre mépris envers les utilisateurs est décevant. Il s'agit de personnel salarié de différents corps de métier, aucunement des informaticiens.
« soit tu leur demande les mots clés dans une inputbox (ou un userform plus complet) » les fenêtres de recherche xlDialogFormulaFind existent déjà, vous me proposez de réinventer la roue!!!
« et tu leur proposes le résultat de la recherche qu'ils choisissent le document » : cette phrase n'est pas très claire... je veux simplement qu'ils puissent faire une recherche pour trouver un mot dans le classeur (qui sert de registre de documents)
Je ne crois pas que vous ayez besoin du fichier (qui serait beaucoup trop volumineux, et qui est confidentiel par le fait même) pour simplement me dire s'il y avait moyen d'avoir l'option « Dans » comme pour la fenêtre « Rechercher et remplacer » complète, mais sans avoir l'option de remplacer (donc la fenêtre xlDialogFormulaFind plus option « Dans feuille/classeur »).
Si ce n'est pas possible, une réponse qui dit que ce n'est pas possible, je m'en contenterais, mais attention aux jugements, svp.
« le mieux c'est encore de leur apprendre à s'en servir, tout le monde est gagnant » : cela signifierait que je doive m'asseoir avec 500 personnes pour leur montrer... votre conseil, bien que logique, est utopique, donc superflu!
« A partir de vba tu ne peux pas faire une recherche sur plusieurs feuilles directement via la boite de dialogue » : c'est faux, puisque justement, la fenêtre rechercher cherche directement dans plusieurs feuilles et c'est ce que je ne veux pas.
« soit tu leur apprends comment choisir Classeur dans la liste déroulante » : vous parlez de quoi au juste? Les seules listes déroulantes disponibles dans la fenêtre rechercher réduite sont « Rechercher par ligne/colonne » et « Regarder dans formules/valeurs/commentaires ». S'il y avait cette option, je n'aurais pas à poser cette question ici!
« (faut pas être ceinture noire d'excel pour ça) » : votre mépris envers les utilisateurs est décevant. Il s'agit de personnel salarié de différents corps de métier, aucunement des informaticiens.
« soit tu leur demande les mots clés dans une inputbox (ou un userform plus complet) » les fenêtres de recherche xlDialogFormulaFind existent déjà, vous me proposez de réinventer la roue!!!
« et tu leur proposes le résultat de la recherche qu'ils choisissent le document » : cette phrase n'est pas très claire... je veux simplement qu'ils puissent faire une recherche pour trouver un mot dans le classeur (qui sert de registre de documents)
Je ne crois pas que vous ayez besoin du fichier (qui serait beaucoup trop volumineux, et qui est confidentiel par le fait même) pour simplement me dire s'il y avait moyen d'avoir l'option « Dans » comme pour la fenêtre « Rechercher et remplacer » complète, mais sans avoir l'option de remplacer (donc la fenêtre xlDialogFormulaFind plus option « Dans feuille/classeur »).
Si ce n'est pas possible, une réponse qui dit que ce n'est pas possible, je m'en contenterais, mais attention aux jugements, svp.