Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70208 Skopiuj do schowka Filtry zaawansowane - Userform
Autor Wiadomość
legionistaec99 
Starszy Forumowicz


Wersja: Win Office 365
Posty: 37
Wysłany: 22-02-2021, 09:51   Filtry zaawansowane - Userform

Cześć,

Zwracam się do Was z prośbą o pomoc przy rozwiązaniu zagadnienia zastosowania filtrów zaawansowanych na formularzach/userformach. Chcę w ten sposób przygotować kilka paneli użytkownika, które w oparciu o dostępne dane w systemie umożliwią szybki podgląd do potrzebnych informacje. W załączeniu do tej wiadomości przesyłam przykładowy plik który po części wykorzystuję w swojej bazie. Poza dostępnym ListbBoxem lstCities chciałbym wykorzystać kilka innych kontrolek, w tym pola tekstowy - TextBox1 który dodałem na górze formularza. Dane który zostają wpisane w tym polu powinny filtrować wynik. Problemem jest to, że w tym momencie po wpisaniu w dodanym polu tekstowym wynik jest filtrowany dopiero kiedy zostanie wybrane odpowiednie miasto na drugiej liście.
Chciałbym dojść do momentu kiedy:

1. po wybraniu listy - wynik jest filtrowany przez wybrane miasto
2. jeżeli w tym samym momencie dodatkowo zostanie wpisana nazwa stanowiska otrzymamy wynik przefiltrowany na podstawie obu kryteriów (to częściowo działa)
3. jeżeli wyczyścimy formularz i jedynym kryterium będzie wpisany przez nas tytuł stanowiska, cała lista zostanie przefiltrowana wyłącznie po tym kryterium, nie oczekując od pracownika, że wybierze dodatkowo miasto - z tym nie mogę sobie poradzić.

Będę wdzięczny za jakiekolwiek sugestię i pomoc z Waszej strony!
Plik który załączam jest edytowaną kopią danych pobranych w ramach wątku na zagranicznym blogu.

Miłego dnia, pozdrawiam

ListBox-Grid-Sample Wzór.xlsm
Pobierz Plik ściągnięto 5 raz(y) 31.65 KB

  
ID posta: 400825 Skopiuj do schowka
 
 
Tajan


Pomógł: 4729 razy
Posty: 10412
Wysłany: 22-02-2021, 13:10   

Zobacz załączniku. Zmieniłem procedurę lstCities_Change:
Kod:
Private Sub lstCities_Change()
    Dim rngData As Range, rngCrit As Range, rngExt As Range
   
    If lstCities.ListIndex = -1 Then Exit Sub   ' nothing is selected, so quit
    Debug.Print lstCities.List(lstCities.ListIndex)

    shtCriteria.Range("E2").Value = lstCities.List(lstCities.ListIndex)
   
    FilterDatabase
   
    lstData.ListIndex = -1
End Sub

oraz TextBox1_Change
Kod:
Private Sub TextBox1_Change()

If lstCities.ListIndex = -1 Then shtCriteria.Range("E2").Value = Empty
shtCriteria.Range("D2").Value = Me.TextBox1.Value

FilterDatabase

End Sub
oraz część kodu z lstCities_Change przenosłem do nowej procedury FilterDatabase.

ListBox-Grid-Sample Wzór(tj).xlsm
Pobierz Plik ściągnięto 6 raz(y) 29 KB

ID posta: 400834 Skopiuj do schowka
 
 
legionistaec99 
Starszy Forumowicz


Wersja: Win Office 365
Posty: 37
Wysłany: 22-02-2021, 14:54   

Cześć @Tajan,

Wielkie dzięki za pomoc. Wygląda na to, że wszystko działa tak jak chciałem. Jak tylko dotrę do domu sprawdzę dokładnie zmiany które wprowadziłeś i spróbuje zastosować dodatkowe kontroli do filtrowania dat na innym zbiorze danych. Zastosuję wzór Twojego rozwiązania i mam nadzieję, że wszystko będzie równie dobrze działało. Do tego czasu nie chciałbym zamykać tego wątku :)

Raz jeszcze dziękuje!!! :)
ID posta: 400842 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe