Bonjour à tous,
J'ai créé un fichier avec de menus déroulants en cascade me permettant de formuler ma recherche. J'ai fait ensuite un CONCATENER des différents menus en H1.
J'ai ensuite créé une macro afin de masquer toutes les lignes ne correspondants pas à ma demande (voir ci-dessous):
Comme vous le voyez j'ai environ 5500 lignes et cela va augmenter; comme le processus est lent je recherche une solution pour accéler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Sub rechercher() Rows("11:5479").Select Selection.EntireRow.Hidden = False Application.ScreenUpdating = False Dim i As Long Dim Plage As Range Set Plage = Range("A11:A" & Range("A5500").End(xlUp).Row) For i = Plage.Cells.Count To 1 Step -1 Plage.Cells(i).EntireRow.Hidden = True If InStr(Plage.Cells(i).Text, Range("H1").Text) Then Plage.Cells(i).EntireRow.Hidden = False End If Next Application.ScreenUpdating = True End Sub
Ma première idée serait de déterminer différentes plages de recherche en fonction de la marque recherché en A1 mais je ne sais pas comment faire.
Du style:
Si A1=1 alors rechercher dans la plage A11:A800
Si A2=2 alors rechercher dans la plage A801:A1400
Ma seconde idée est toute différente. Ma base se situe dans un onglet caché et j'affiche dans ma page principale uniquement ma recherche.
Par contre je ne sais pas comment poursuivre une recherchev à partir du dernier point connu.
C'est à dire par exemple, ma premiere occurence est en ligne 100 dans la plage de recherche et je voudrais que dans la ligne suivante la recherchev continue la recherche en commencant après la ligne 100. Il doit bien y avoir quelque chose à faire avec INDEX EQUIV DECALER mais je dois avouer que je maitrise mal ces fonctions.
Si quelqu'un pouvez me venir en aide je lui en serai redevable.
Cordialement
Partager