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.

Makro excel filtrowanie -

karha 27 Sty 2017 12:37 684 3
  • #1 27 Sty 2017 12:37
    karha
    Poziom 2  

    Witam,

    Zaczęłam korzystać z makr, uczę się ich pisać na wlasne potrzeby, są one jak narazie bardzo proste. Niestety mam problem, który mi przerósł. Mam gigantyczną bazę danych w excelu stworzyłam makro które działa ale bardzo długo I na poczatku wszyscy się cieszyli ze sami moga sobie korzystac z pliku I dostawac konkretne informacje, teraz narzekaja ze wolno dziala :( nie wiem jak mam to usprawnić
    arkusz 1 - baza danych sprzedazowych
    arkusz 2 - lista klientow wraz z ID, ustawiony filtr aby mozna bylo sobie dowolnie wyszukac jednego lub kilku klientow
    arkusz 3 - pogrupowana sprzedaz na uslugi I okresy
    czy ktos moglby spojrzec na te moje wypociny I mi doradzic?

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0 3
  • Pomocny post
    #2 28 Sty 2017 09:34
    adamas_nt
    Moderator Programowanie

    Moim skromnym zdaniem niepotrzebnie aktywujesz kolejne obiekty.
    -szukanie pierwsze pustej najlepiej zrealizować przez skok z ostatniej komórki kolumny: end(xlUp).row +1 (nagraj Ctrl+strzałka w górę). Szkoda czasu na pętlę.
    -arkusz można sortować odwołując się do nazwy/indeksu (nie musi być aktywny)

    Najwięcej czasu pochłania zapewne kopiowanie i tu nic nie wskóramy, jakiego by tu nie użyć sposobu. Dłużej oczywiście będzie realizowane kopiowanie z właściwościami (copy-paste) niż przypisywanie/kopiowanie tylko wartości (copy-destination, lub Range()=Range()), ale tu wybór metody zależy od potrzeb.

    Przy skoroszytach posiadających sporą ilość danych, pewne rzeczy robię przy otwarciu (sortowania, przepisywania do tablic VBA, czasem załadowanie formularzy z przypisaniem list (load, nie show),etc). Wczytywanie pliku trwa nieraz "dłuższą chwilę", więc kilka/naście/dziesiąt sekund nie robi różnicy, za to oczekiwanie na reakcję przycisku, otwarcie formularza, itp bywa irytujące.

    0
  • Pomocny post
    #3 28 Sty 2017 17:47
    clubs
    Poziom 31  

    Witam
    Ja dodam od siebie pozbądź się wszystkich selectów kieruj bezpośrednio do komórki

    np ten zapis można skrócić z

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #4 30 Sty 2017 10:14
    karha
    Poziom 2  

    Spróbuję Waszych wskazówek i dam znać czy działa szybciej

    0