Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
bonjour
je recherche de l'aide pour créer un petit moteur de recherche dans une la cellule E9
l’idéal si c'est possible des la saisie d'un caractère ou plusieurs, la cellule E9 (ou autre)affiche les résultats(les résultats commence par le contenue de la cellule E9 et rechercher dans la feuille "bd")
si je sélectionne le résultat désiré alors il m'affiche les emplacements dans la colonne A(les autres élément seront remplie par une recherche v)
merci Cindy
bonsoir Thierry
oui c'est pas mal comme solution
par contre je dois faire la recherche par référence et non par nom
de plus si je tape"cin"il affiche bien les emplacement ,mais si j'efface "cin" et que je le remet"cin" il me met les emplacement a la suite au lieu de remettre a zéro le document
l’idéal serait des que je tape par exemple "123" il m'affiche toute les références commençant par 123 ensuite je sélectionne une référence et la il m'indique les emplacements
re Thierry ,le fil
oui c'est nettement mieux comme version
il n'y a même plus besoin de mettre des recherches v partout
par contre j'ai encore le souci de recherche:
si je veux rechercher la ref 123456 Q01
quand je rentre 123
il me donne les emplacements des références 123456 Q01 et 123556 q07 et 123556 q05
il faudrait que je puisse sélectionner la bonne référence et ensuite qu'il indique les emplacements se serait le top ca
Cindy
est ce possible
RE THIERRY
tout simplement magniphiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiique
c'est tout a fait ma demande
géniale
Cindy
connait tu un code moins long pour faire un tri par macro
tri de la plage A12:I500
1 er critère par n°client
2 eme critère par référence
3 eme critère par type
4 eme critère par début séquenciel croissant
voici le code que j'utilise il fonctione mais je pense qu'il y a mieux
Très content d'avoir pu faire progresser ton petit moteur de recherche !
Oui on peut toujours améliorer une macro enregistrée en essayant de la comprendre, et par conséquent de minimiser les répétitions des références aux objets avec des "With" et aussi de la rendre dynamique, car souvent une macro enregistrée reste "bêtement" figée aux paramètres du moment et donc elle n'est pas adaptée à couvrir des paramètres plus larges (ou plus courts).
J'en profite pour signaler que ce travail d'analyse d'interprétation et d'optimisation des macros enregistrées est la BASE d'apprentissage du VBA, et c'est ultra efficace en pressant la Touche F1 sur une Fonction ou un Objet pour avoir l'aide contextuelle, selon le cas il y aura même des exemples.
Enfin revenons à nos moutons.... Ta macro de tri ci-dessus donnerait ceci :
Code:
Option Explicit
Sub MySorting()
Dim MyWS As Worksheet
Set MyWS = Worksheets("Recherche")
'
With MyWS
With .Sort.SortFields
.Clear
.Add Key:=Range("B11"), SortOn:=xlSortOnValues, Order:=xlAscending
.Add Key:=Range("D11"), SortOn:=xlSortOnValues, Order:=xlAscending
.Add Key:=Range("E11"), SortOn:=xlSortOnValues, Order:=xlAscending
.Add Key:=Range("G11"), SortOn:=xlSortOnValues, Order:=xlAscending
End With
With .Sort
.SetRange Range("A11").CurrentRegion
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub
On notera que je ne précise que les Adresses des cellules d'entête dans les Add Key afin de rester dynamique sur la longueur de la plage à traîter, et ceci grace plus bas au : [SetRange Range("A11").CurrentRegion] et aussi je ne trie pas les entêtes puisque il est bien précisé : [Header = xlYes] D'autres options sont facultatives (Sort Méthod, Match Case), mais je les ai laissées au cas où ...
NB le code ci-dessus applicable à un Objet WorkSheet n'est valable qu'à partir d'Excel 2007, car dans les versions antérieures seulement trois critères de tri étaient disponibles pour l'Objet Range (pas WorkSheet) et se présente comme suit :
Code:
Sub MySorting_Up_To_Excel_2003()
Range("A11").CurrentRegion.Sort _
Key1:=Range("B11"), Order1:=xlDescending, _
Key2:=Range("D11"), Order2:=xlDescending, _
Key3:=Range("E11"), Order3:=xlDescending, _
Header:=xlYes
End Sub
Ce code XL 2000/2003 reste fonctionnel pour les nouvelles versions d'Excel aussi.
PS je ne te recommande pas de cummuler dans la même Procédure Evènementielle du Moteur de Recherche et le Tri, car il risque d'y avoir des effets de bord avec Excel qui peut planter, à mon avis il vaut mieux ajouter un Bouton de Tri sur ta Feuille.
re Thierry
j'ai pris l'option du code pour office 2010 et j'ai ajouter 2 option de tri ça marche parfaitement
par contre chose que je ne comprend pas avant la recherche se faisait rapidement
maintenant ça lague ça affiche ligne par ligne alors qu'avant ça afficher tout le résultat quasiment en bloque
j'ai pourtant mis la macro de tri sur une autre feuille pour éviter les problèmes et activer par un bouton
aurait tu une idée
ps😛our l'impression de document sur l'autre fil le format conditionnel fonctionne et ne bloque pas la mise en page nickel
Pour la lenteur quand tu dis "j'ai pourtant mis la macro de tri sur une autre feuille pour éviter les problèmes et activer par un bouton" c'est quoi une autre feuille ? un Module ?
Parfois à force de travailler des heures à faire tourner la même macro quii plante parfois, il vaut mieux tout fermer et même parfois redémarrer Windows... C'est ca les "plus" de Windows !
Ta base de donnée fait combien de Lignes ?
Tu verras dans l'autre Fil pour les Format Conditionnels que je t'ai fait une version 4 au fait où finalement il n'y a pas besoin de MFC... Mais bon comme je dis en VBA tous les chemins mênent à Rome, c'est bien pour Pâques !
Oui je ne crains que les MFC fassent ralentir tout le sbinz puisqu'elles re-calculent à chaque changement...
Donc je te remets la Version 4 sans MFC mais avec ColorIndex à laquelle je vire le ScreenUpdating pour gagner un peu...
J'ai mis un Timer idiot mais qui me retourne ceci sur une BD de 1734 Lignes avec critère "123"
Si tu peux tester et me dire... Ta config aussi au cas où ... Ici c'est un Intel Core2 Quad 2.66 et 3.00 GO RAM sur XP 32 Bits, Office 2007, donc une machine un peu vieillotte mais qui tourne.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD