Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[VBA/Excel] - Wyszukiwanie tekstu w arkuszu

felixik 28 Gru 2014 11:13 1593 13
  • #1 28 Gru 2014 11:13
    felixik
    Poziom 7  

    Witam, próbuję stworzyć wyszukiwarkę filmów w pliku excelowskim. W arkuszu jest tabelka z kolumnami LP, tytuł filmu, rozmiar, czas trwania, lokalizacja oraz inf. czy jest to lektor/napisy. Arkusz nazywa się filmy i zawartość jest w kolumnach od E do K. Przy czy tytuł filmu jest w kolumnie F

    Zrobiony jest przycisk "znajdź film", który otwiera wyszukiwarkę i jest on w innym arkuszu o nazwie Arkusz1. Wyszukiwarka składa się z 1 pola tekstowego o nazwie TextBox1 i przycisku znajdź o nazwie szukaj. Kod, który znalazłem w sieci wygląda jak poniżej. Niestety coś jest źle, bo cały czas wypluwa komunikat o nie znalezionym wyrazie w kolumnie

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Z góry dziękuję za pomoc

    0 13
  • #2 28 Gru 2014 12:08
    adamas_nt
    Moderator Programowanie

    felixik napisał:
    Kod, który znalazłem w sieci wygląda jak poniżej
    Szczerze? Poszukaj innego kodu (lub nagraj swój rejestratorem). Tym niczego nie znajdziesz...

    Może spróbuj innego rozwiązania? Zerknij Tutaj - załącznik, post #14
    Pierwsze pole filtra wg "zawiera" (InStr), drugie wg początku ciągu (Left).

    0
  • #3 28 Gru 2014 12:52
    felixik
    Poziom 7  

    adamas_nt napisał:
    felixik napisał:
    Kod, który znalazłem w sieci wygląda jak poniżej
    Szczerze? Poszukaj innego kodu (lub nagraj swój rejestratorem). Tym niczego nie znajdziesz...

    Może spróbuj innego rozwiązania? Zerknij Tutaj - załącznik, post #14
    Pierwsze pole filtra wg "zawiera" (InStr), drugie wg początku ciągu (Left).


    Może faktycznie nagranie jest całkiem mądrym pomysłem, ale jak nagrać wyszukiwanie? Skoro użytkownik wpisuje rożne dowolne ciągi znaków, a makro powiela tylko to co zostało nagrane

    0
  • #4 28 Gru 2014 13:11
    JRV
    Specjalista - VBA, Excel

    Jest X=InputBox()

    0
  • #5 28 Gru 2014 18:56
    felixik
    Poziom 7  

    Urodziłem coś takiego. Niestety nie działa, bo coś nie halo. Proszę o pomoc

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 28 Gru 2014 19:49
    JRV
    Specjalista - VBA, Excel

    Co jest k?
    Jeśli 'k' jest 'zakres', następnie dlaczego to nie uzywasz?
    Ponadto w LCase tylko 1 parameter( LCase(k.Value, 1)).

    Dodano po 16 [minuty]:

    felixik napisał:
    For Each film In Range("E4:K327")

    Być może
    wynik = LCase(film.Text)?
    następnie film.Row

    Dodano po 9 [minuty]:

    nie trzeba pisać pełną nazwę filmu, raczej początek, potem
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #7 28 Gru 2014 20:30
    felixik
    Poziom 7  

    JRV napisał:
    Co jest k?
    Jeśli 'k' jest 'zakres', następnie dlaczego to nie uzywasz?
    Ponadto w LCase tylko 1 parameter( LCase(k.Value, 1)).

    Dodano po 16 [minuty]:

    felixik napisał:
    For Each film In Range("E4:K327")

    Być może
    wynik = LCase(film.Text)?
    następnie film.Row

    Dodano po 9 [minuty]:

    nie trzeba pisać pełną nazwę filmu, raczej początek, potem
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    No OK, błędów nie ma. Jednak zamiast wylistować znalezione wyniki to tylko przechodzi przez podany zakres i nic. Makro ukryło całą zawartość tabeli

    0
  • #8 28 Gru 2014 20:43
    JRV
    Specjalista - VBA, Excel

    Dołączanie pliku(prykladowego), być może wszystko wygląda inaczej, niż nam się wydaje.

    0
  • #9 28 Gru 2014 20:49
    adamas_nt
    Moderator Programowanie

    Skoro: 'For Each film In Range("E4:K327")' oraz 'Rows(film.Row).Hidden = True', to ukryło wszystko. Tytuły są we wszystkich kolumnach?

    Dodano po chwili = refleksowi szachisty

    A, sorki, pisałeś już w #1 W takim razie: 'For Each film In Range("F4:F327")' i sprowadź obie strony porównania do LCase (uodpornisz na wielkość liter).

    0
  • #10 28 Gru 2014 22:23
    felixik
    Poziom 7  

    JRV napisał:
    Dołączanie pliku(prykladowego), być może wszystko wygląda inaczej, niż nam się wydaje.


    Zgodnie z prośbą dołączam plik

    0
  • #11 28 Gru 2014 22:50
    JRV
    Specjalista - VBA, Excel

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dodano po 4 [minuty]:

    nie trzeba pisać pełną nazwę filmu, raczej początek

    0
  • #12 28 Gru 2014 22:57
    adamas_nt
    Moderator Programowanie

    Nie lepiej wylistować w arkuszu z przyciskiem? Dałem wild'a również z przodu -można szukać po fragmencie, Np "ninja", "ameryka", itd/itp (wielkość liter nie gra roli).

    0
  • #13 28 Gru 2014 23:10
    2341115
    Użytkownik usunął konto  
  • #14 29 Gru 2014 05:25
    felixik
    Poziom 7  

    adamas_nt napisał:
    Nie lepiej wylistować w arkuszu z przyciskiem? Dałem wild'a również z przodu -można szukać po fragmencie, Np "ninja", "ameryka", itd/itp (wielkość liter nie gra roli).


    Dokładnie o coś takiego chodziło. Dziękuję

    Mam nadzieję, że z dodawaniem jakoś uporam się sam

    0