Wynik na podstawie trzech danych - Makro

0

Witam, jestem nowy, od jakiegoś czasu zacząłem się uczyć VBA i niestety nie wszystko jeszcze dobrze "ogarniam". Chciałbym prosić o pomoc w postaci wskazówki jak należy wykonać następujące makro. Mianowicie chciałbym uzyskać odpowiedź po wybraniu w polach danych czy dane wartości znajdują się w tabeli i jeśli tak to w którym wierszu i ile jest takich rekordów. Pierwszym pomysłem było wyszukiwanie pionowo poprzez makro, ale musiałbym dołączyć kolejną kolumnę w excelu - "zbitkę" poprzednich kolumn, więc to trochę bezsensowne, ale działa. Chciałbym jednak dowiedzieć się jak można to wykonać inaczej, szybciej i lepiej za pomocą VBA, bo na pewno można.

Załączam plik z tym. Z góry dziękuję za pomoc.

0

Można tak, wrzucasz do swojego arkusza pod Private Sub CommandButton1_Click()

'usun filtr
ActiveSheet.AutoFilterMode = False

'zabezpieczenie na brak parametrow filtrowania
With UserForm1
    If Len(.ComboBox1.Text) = 0 Or (.ListBox1.ListIndex) = -1 Or Len(.TextBox1.Text) = 0 Then
        MsgBox "wprowadź parametry"
        Exit Sub
    End If
End With

'wlacz filtr
With ActiveSheet.Range("A1:D1")
    .AutoFilter Field:=2, Criteria1:=UserForm1.ComboBox1.Text
    .AutoFilter Field:=3, Criteria1:=UserForm1.ListBox1.List(UserForm1.ListBox1.ListIndex)
    .AutoFilter Field:=4, Criteria1:=UserForm1.TextBox1.Text
End With
0

Dziękuję! Właśnie o coś takiego mi chodziło! Choć przyznam szczerze, że nie rozumiem dlaczego w Listboxie trzeba takie coś zrobić, aby zadziałało

UserForm1.ListBox1.List(UserForm1.ListBox1.ListIndex)

1 użytkowników online, w tym zalogowanych: 0, gości: 1