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

EXCEL - makro wyszukujące kryterium i pokazujące zakres

marcel3miasto 18 Lut 2010 12:19 4262 9
REKLAMA
  • #1 7712829
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    Witam, mam "mały kłopot".
    Tworzę arkusz rozliczający koszty, jednak danych jest sporo i chcę ułatwić sobie pracę.
    Arkusz wygląda tak:
    EXCEL - makro wyszukujące kryterium i pokazujące zakres

    Chciałbym aby:

    1) w formularzu "lista firm" wyświetlała się lista firm (np. ABEL, AGROS NOVA, ALGIDA), jednak formatując formant i podając zakres kryteriów w postaci $B$6;$B$19;$B$32 wyskakuje mi błąd "błędny zakres kryteriów"

    2) Jeżeli już lista firm będzie działać, to po wybraniu np. firmy AGROS NOVA i kliknięciu WYSZUKAJ wyskakiwał tylko zakres wierszy od 19 do 31, a np po wybraniu ALGIDA zakres wierszy od 32 do 44

    3) po kliknięciu PEŁNA LISTA wyświetla się pełna lista firm.

    Nadmienię że próbowałem filtry zaawansowane, ale nie za bardzo mi wychodzi, arkusz ma ok 1500 wierszy, więc kręcenie kółkiem jest już męczące.
    Bardzo proszę o pomoc i z góry dziękuję za łopatologiczne wytłumaczenie (VBA nie znam w ogóle)

    Pozdrawiam
    Marcel
  • REKLAMA
  • Pomocny post
    #2 7713903
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    1) Lista musi mieć ciągły zakres. Najlepiej wykorzystać do tego osobny arkusz. Trochę można zautomatyzować (patrz załącznik). Założyłem, że nazwa firmy w Arkusz1 występuje co 13 wierszy.

    2) W przykładzie wykorzystałem VBA (Select Case) i ukrywanie/odkrywanie wierszy

    3) j.w.
    Załączniki:
    • marcel3miasto.xls (36 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #3 7714013
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    Właśnie o coś takiego mi chodziło. Mam jeszcze pytanie czysto techniczne.
    Mamy kod VBA:
    Sub UkrOdk()
    Select Case Range("A1")
      Case 1
        Rows("6:18").EntireRow.Hidden = False
        Rows("19:57").EntireRow.Hidden = True
      Case 2
        Rows("6:18").EntireRow.Hidden = True
        Rows("19:31").EntireRow.Hidden = False
        Rows("32:57").EntireRow.Hidden = True
      Case 3
        Rows("6:31").EntireRow.Hidden = True
        Rows("32:44").EntireRow.Hidden = False
        Rows("45:57").EntireRow.Hidden = True
      Case 4
        Rows("6:44").EntireRow.Hidden = True
        Rows("45:57").EntireRow.Hidden = False
      Case Else
        Rows.EntireRow.Hidden = False
    End Select
    End Sub
    


    Rozumiem że zakresy ukrywania i odkrywania wierszy muszę "z palca" uzupełnić w skrypcie? W taki sposób:
    
    Sub UkrOdk()
    Select Case Range("A1")
      Case 1
        Rows("6:18").EntireRow.Hidden = False
        Rows("19:71").EntireRow.Hidden = True
      Case 2
        Rows("6:18").EntireRow.Hidden = True
        Rows("19:31").EntireRow.Hidden = False
        Rows("32:71").EntireRow.Hidden = True
      Case 3
        Rows("6:31").EntireRow.Hidden = True
        Rows("32:44").EntireRow.Hidden = False
        Rows("45:71").EntireRow.Hidden = True
      Case 4
        Rows("6:44").EntireRow.Hidden = True
        Rows("45:57").EntireRow.Hidden = False
        Rows("58:71").EntireRow.Hidden = True
      Case 5
        Rows("6:57").EntireRow.Hidden = True
        Rows("58:71").EntireRow.Hidden = False
      Case Else
        Rows.EntireRow.Hidden = False
    End Select
    End Sub


    Mam tych firm ok 130, nie wiem też czy w ciągu roku nie będą dochodziły nowe
  • Pomocny post
    #4 7714257
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Pewnie dałoby się to "zmechanizować", ale z drugiej strony w każdym Case masz tylko max trzy linijki kodu. Ewentualnie w przykładowym Arkusz2 można dorobić sobie ściągę.

    EXCEL - makro wyszukujące kryterium i pokazujące zakres
  • REKLAMA
  • #5 7714358
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    No w sumie tak, i tak zaoszczędzę dzieki temu sporo czasu.

    Dzięki wielkie.
  • REKLAMA
  • Pomocny post
    #6 7714471
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Jak już pisałem, można pokombinować z automatyzacją. W załączniku jeden ze sposobów.

    Edit 18:44 zmiana załącznika...
    Załączniki:
    • marcel3miasto.xls (41 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 7715844
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    Gienialnie, zaimplementowałem już u siebie w arkuszu. Kod przejrzysty i prosty.

    Wielkie dzięki, jestem pod wrażeniem.
  • #8 7717210
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    Piszę jeden post pod drugim ponieważ urodził się kłopot.
    Skrypt działa doskonale, jednak wcześniej nie dodałem że zakładek z firmami będzie 12 (Styczeń, Luty, Marzec ... itd).

    Nie za bardzo wiem jak to przenieść na kolejne zakładki. Skrypt VBA próbuję zostawić tak jak jest, na zakładce Luty jako łącze formantu daję Styczeń!$A$2 (bo tak mam zrobione w skrypcie), ale nie uzyskuję porządanego efektu :-(
  • Pomocny post
    #9 7717403
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Trochę przerobiłem. Działa pod warunkami:

    1) lista firm pobierana jest z arkusza "Sty". Jeśli w innych arkuszach (miesiącach) będą różnice należy do tworzenia listy użyć makr.

    2) Arkusze muszą mieć taki sam układ (wspólne makro)

    3) Indeks (łącze komórki pola kombi) jest wspólny dla wszystkich arkuszy.
    Załączniki:
    • marcel3miasto.xls (51 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 7717832
    marcel3miasto
    Poziom 11  
    Posty: 23
    Ocena: 2
    Super, dzięki. Pobieranie firm już przerobiłem wcześniej, także z tym nie ma problemu. Firmy są w zakładce Lista i z tamtąd "eksportują" się na zakładki miesięcy.

    Wszystko działa aż miło. Jeszcze raz "pomocnik"

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał pomocy w stworzeniu makra w Excelu, które umożliwiłoby wyszukiwanie firm w arkuszu rozliczeniowym. Problemy obejmowały błędy związane z zakresem kryteriów oraz potrzebę automatyzacji ukrywania i odkrywania wierszy w zależności od wybranej firmy. Użytkownik otrzymał wskazówki dotyczące użycia VBA do realizacji tych funkcji, w tym przykłady kodu, które pozwalały na ukrywanie wierszy w oparciu o wybór z listy rozwijanej. Dodatkowo, poruszono kwestię przenoszenia skryptu na różne zakładki miesięczne, co wymagało dostosowania kodu do wspólnego układu arkuszy. Użytkownik z powodzeniem zaimplementował rozwiązania i dostosował je do swoich potrzeb.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA