logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zaimplementować formułę do TextBox dla wartości liczbowych?

ana217 27 Paź 2018 12:58 852 7
REKLAMA
  • #1 17521027
    ana217
    Poziom 9  
    Posty: 8
    Witam
    Jak mam obłożyć textbox formułą by wyszukiwało mi wartości liczbowe? Makro dobrze filtruje mi wartości tekstowe, a źle liczbowe, część danych znika.

    Makro
    Private Sub TextBox1_Change()
    Range("A:G").AutoFilter 1, "*" & TextBox1.Text & "*"
    Range("A:G").AutoFilter 2, "*" & TextBox1.Text & "*"
    End Sub

    Chyba że można zrobić to w inny sposób?

    Dziękuje za pomoc
  • REKLAMA
  • #2 17521043
    spp
    Poziom 12  
    Posty: 129
    Pomógł: 5
    Ocena: 9
    Chcesz odfiltrować komórki zawierające liczby od tych które zawierają tekst?

    Nie trzeba do tego makra.

    Dodaj dodatkową kolumnę z =CZY.LICZBA( [tu adres sprawdzanej komórki] ) i filtruj po tej kolumnie
  • REKLAMA
  • #3 17521102
    ana217
    Poziom 9  
    Posty: 8
    Chodzi mi o to by wyszukiwało mi produkt albo po nazwie, lub po kodzie. Makro w tym przypadku bardzo ułatwia mi pracę ponieważ już po części wpisanego tekstu zostaje odfiltrowana część produktów. Natomiast przy wpisywaniu wartości liczbowych występuje błąd.Cżęść danych znika, nie wszystkie wynik się pojawiają.
    Załączniki:
    • Jak zaimplementować formułę do TextBox dla wartości liczbowych? prawidłowe filtrowanie.jpg (150.38 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • Jak zaimplementować formułę do TextBox dla wartości liczbowych? Bez tytułu.jpg (59.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 17521137
    spp
    Poziom 12  
    Posty: 129
    Pomógł: 5
    Ocena: 9
    A czy filtry przypadkiem nie nakładają się na siebie i stąd te znikające dane?

    Ja bym zrobił tak:
    ALBO dał dwa osobne pola tekstowe, jedno do szukania po kodzie, a drugie do szukania po nazwie
    ALBO przed wywołaniem filtra sprawdził czy szukana wartość jest liczbą i wywołał w zależności od tego odpowiedni

    oraz po zmianie trybu wyszukiwania (nazwa / kod) należy chyba filtry najpierw zresetować przez ShowAllData
  • #5 17521195
    ana217
    Poziom 9  
    Posty: 8
    Dawałam dwa osobne pola ale nic to nie zmieniło. Jeszcze dużooo nauki przede mną.
  • REKLAMA
  • Pomocny post
    #6 17521205
    spp
    Poziom 12  
    Posty: 129
    Pomógł: 5
    Ocena: 9
    ok to sprawdzę to u siebie i odpiszę jak zrobić by działało

    Dodano po 35 [minuty]:

    Masz rację! Excel inaczej traktuje liczby. Może je porównywać większa/mniejsza/równa ale nie cyfra po cyfrze.

    Ustaw formatowanie kolumny z kodem jako tekst! Od tej pory każda wpisana w nią liczba będzie ciągiem znaków i będzie działać na niej filtrowanie.

    /// uwaga: u mnie w Excelu 2010 stare wpisane wcześniej liczby są ciągle traktowane jak liczba, trzeba je zaenterować żeby excel załapał nowy format wg. kolumny; jakiś błąd excela czyli nie wystarczy tylko zmienić formatu kolumny, ale nowo wpisywane są już traktowane poprawnie

    A reszta np. tak:


    
    Private Sub TextBox1_Change()
    
    Set Rng = Range("A:G")
    
    Rng.AutoFilter Field:=2
    
    If TextBox1.Value = "" Then
    Rng.AutoFilter Field:=1
    Else: Rng.AutoFilter 1, "*" & TextBox1.Value & "*"
    End If
    
    End Sub
    
    Private Sub TextBox2_Change()
    
    Set Rng = Range("A:G")
    
    Rng.AutoFilter Field:=1
    
    If TextBox2.Value = "" Then
    Rng.AutoFilter Field:=2
    Else: Rng.AutoFilter 2, "*" & TextBox2.Value & "*"
    End If
    
    End Sub
    
    
  • #7 17521280
    ana217
    Poziom 9  
    Posty: 8
    Dziękuje ślicznie. Działa jak należy :)
  • #8 17521464
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    spp napisał:
    Masz rację! Excel inaczej traktuje liczby. Może je porównywać większa/mniejsza/równa ale nie cyfra po cyfrze.
    Ustaw formatowanie kolumny z kodem jako tekst! Od tej pory każda wpisana w nią liczba będzie ciągiem znaków i będzie działać na niej filtrowanie.

    Nie to że nie idzie filtrować po liczbach(cyfrach) problem w tym że autofiltr nie obsługuje symboli wieloznacznych w przypadku cyfr(liczb) tylko tekst (stąd formatowanie kolumny jako tekst)

Podsumowanie tematu

✨ Użytkownik pyta, jak zaimplementować filtrację wartości liczbowych w TextBox w Excelu, ponieważ obecne makro nie działa poprawnie, co prowadzi do znikania części danych. Odpowiedzi sugerują dodanie kolumny z formułą =CZY.LICZBA() do filtrowania oraz ustawienie formatu kolumny z kodem jako tekst, co umożliwia prawidłowe filtrowanie liczb. Wskazano również, że Excel nie obsługuje symboli wieloznacznych dla liczb, co wymaga innego podejścia do filtrowania. Użytkownik potwierdza, że zastosowane rozwiązania działają poprawnie.
Wygenerowane przez model językowy.
REKLAMA