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

[VBA/Excel] - Wyszukiwanie tekstu w arkuszu

28 Gru 2014 11:13 2289 13
  • Poziom 8  
    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
  • 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).
  • Poziom 8  
    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
  • Specjalista - VBA, Excel
    Jest X=InputBox()
  • Poziom 8  
    Urodziłem coś takiego. Niestety nie działa, bo coś nie halo. Proszę o pomoc

    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • 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
  • Poziom 8  
    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
  • Specjalista - VBA, Excel
    Dołączanie pliku(prykladowego), być może wszystko wygląda inaczej, niż nam się wydaje.
  • 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).
  • Poziom 8  
    JRV napisał:
    Dołączanie pliku(prykladowego), być może wszystko wygląda inaczej, niż nam się wydaje.


    Zgodnie z prośbą dołączam plik
  • Specjalista - VBA, Excel
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dodano po 4 [minuty]:

    nie trzeba pisać pełną nazwę filmu, raczej początek
  • 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).
  • Użytkownik usunął konto  
  • Poziom 8  
    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