Wpis z mikrobloga

Mireczki takie pytanie o VBA

Mam bazę produktów i do tego zrobioną wyszukwarkę z dynamicznego filtrowania - a w zasadzie kilka wyszukiwarek: wg dostawcy, grupy, nazwy i indeksu

No i mam taki kod przykładowo

Private Sub TextBox4_Change()
Application.ScreenUpdating = False
Worksheets("Baza").ListObjects("materiał").Range.AutoFilter Field:=4, Criteria1:="*" & [E1] & "*", Operator:=xlFilterValues
Application.ScreenUpdating = True
End Sub

Problem jest taki, że zakłądając, że to jest wyszukiwanie po indeksie, to jeśli któraś pozycja nie ma indeksu, to po wpisaniu czegoś w pole filtrowania po indeksie i usunięciu tekstu z tego pola, przestają się wyświetlać pozycje bez indeksów. Żeby wróciły muszę ręcznie usunąć filtrowanie dla kolumny indeksów
Jak to poprawić żeby po wyczyszczeniu komórki od filtrowania pozycje bez indeksów też się wyświetlały?

#excel
Norskee - Mireczki takie pytanie o VBA

Mam bazę produktów i do tego zrobioną wyszukw...

źródło: excel

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Norskee: Taki kod powinien działać (chyba, że w E1 jest coś innego niż zawartość TextBoxa)

If [E1] <> "" Then
Worksheets("Baza").ListObjects("materiał").Range.AutoFilter Field:=4, Criteria1:="*" & [E1] & "*", Operator:=xlFilterValues
Else
Worksheets("Baza").ListObjects("materiał").Range.AutoFilter Field:=4
End If
  • Odpowiedz
  • 0
@brak_nicku: Kombinowałem chyba dobrze, ale źle osadzałem to w kodzie i chyba dlatego nie działało
z tym, że ja próbowałem z IsEmpty
Teraz działa jak trzeba i po usunięciu zawartości z textboxa filter się wyłącza i nie wycina mi pozycji bez indeksów
Dziękuje
  • Odpowiedz
z tym, że ja próbowałem z IsEmpty


@Norskee: To jest przyczyna, dlaczego kod nie działał. IsEmpty i <>"" to dwa różne warunki. Akurat tutaj zadziała tylko ten drugi. Możesz to sprawdzić wpisując w dwie dowolne komórki dwie formuły:
a) CZY.PUSTA(E1)
b) =E1=""
Potem skasuj zawartość E1 przyciskiem Delete, a później wpisuj i kasuj zawartość TextBoxa i obserwuj wyniki formuł.
  • Odpowiedz