Piotr Trynkler

Piotr Trynkler Specjalista ds.
logistyki

Temat: [VBA] - uproszczenie formuły Select Case

Witam, mam problem z uproszczeniem makra Select Case. Makro ma pobierać wartość z listy rozwijanej z komórki C4 i wklejać ją do filtra, który wyświetli interesujące mnie wyniki. Niestety, takich opcji mam ok 500 więc pisanie osobno każdego Case'a jest dość problematyczne. Czy istnieje możliwość uproszczenia tego procesu, np jakby wartości z listy rozwijanej były pobierane z drugiego arkusza? Uprzejmie proszę o pomoc:)

Sub lista()

Dim lista
lista = Range("C4").Value
If IsNumeric(lista) = True Then
Select Case lista
Case 600225
ActiveSheet.Range("$B$15:$Y$1705").AutoFilter Field:=1, Criteria1:= _
"=*600225*", Operator:=xlAnd

Case 602082
ActiveSheet.Range("$B$15:$Y$1705").AutoFilter Field:=1, Criteria1:= _
"=*602082*", Operator:=xlAnd

(...)

End Select

End If

End Sub
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: [VBA] - uproszczenie formuły Select Case

Piotr T.:
Witam, mam problem z uproszczeniem makra Select Case. Makro ma pobierać wartość z listy rozwijanej z komórki C4 i wklejać ją do filtra, który wyświetli interesujące mnie wyniki. Niestety, takich opcji mam ok 500 więc pisanie osobno każdego Case'a jest dość problematyczne. Czy istnieje możliwość uproszczenia tego procesu, np jakby wartości z listy rozwijanej były pobierane z drugiego arkusza? Uprzejmie proszę o pomoc:)

Sub lista()
Dim lista
lista = Range("C4").Value
If IsNumeric(lista) = True Then
ActiveSheet.Range("$B$15:$Y$1705").AutoFilter Field:=1, Criteria1:= _
"=*" & lista & "*", Operator:=xlAnd

End If

End Sub
A po co ten case?
Piotr Trynkler

Piotr Trynkler Specjalista ds.
logistyki

Temat: [VBA] - uproszczenie formuły Select Case

Nie miałem nigdy wcześniej do czynienia z makrem, stąd to przekombinowanie. Wszystko działa, wielkie dzięki za pomoc:)
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: [VBA] - uproszczenie formuły Select Case

Warunki typu CASE działają identycznie jak IF
W tym że wolniej (w msekundach), ale za to dają się rozpisać na nieskończoną ilość przypadków.
Z warunkami IF tylko ograniczona ilość warunków, a i zapis jest mało czytelny.

W twoim przypadku żaden warunek nie wpływał na wynik więc, Sławek dobrze zauważył, że jego użycie mija się z celem.
Damian Zurawski

Damian Zurawski Data Engineer w
Grupie Żywiec

Temat: [VBA] - uproszczenie formuły Select Case

Piotrze,

A jak wywołujesz samą procedurę? Zrobiłeś sobie button, czy robisz to manualnie? Bo tak sobie pomyślałem, że tutaj dobrym rozwiązaniem dodatkowo byłoby umieszczenie kodu w ThisWorkbook z opcją Worksheet_Change :)

Trochę późno odpowiadam, bo minął już praktycznie miesiąc od wstawienia postu ale ostatnio jakoś rzadko zaglądałem na GL ;)

Następna dyskusja:

Unikaty z kolumny - bez VBA...




Wyślij zaproszenie do