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 - wyszukiwanie wartości o przeciwnych znakach

basiaw7 23 Lut 2013 20:54 1767 5
  • #1 23 Lut 2013 20:54
    basiaw7
    Poziom 2  

    Witam. Próbuje napisać makro, które będzie wyszukiwać w jednej kolumnie, np A kwot przeciwnych jeżeli istnieją (np kredyt noty i faktury) , dodatkowym warunkiem jest to aby wartość w kolumnie B (np nazwa przedsiębiorstwa) była dla obu kwot taka sama, jeżeli ten warunek jest spełniony to kwoty te są kopiowane do drugiego arkusza.

    Udało mi się napisać coś takiego:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Problem polega na tym, że lista faktur jest dosyć długa, zawiera około 5 tysięcy pozycji i za każdym razem albo zawiesza mi się Excel albo makro działa bardzo długo.


    Czy macie może pomysł w jaki sposób można by przyśpieszyć/usprawnić działanie tego makra?

    Będę ogromnie wdzięczna za wszelką pomoc!

    Proszę umieszczać kod w znacznikach syntax. Opcja Listing kodu. [adamas_nt]

    0 5
  • #2 23 Lut 2013 21:44
    adamas_nt
    Moderator Programowanie

    Zdaje się, że szybciej byłoby zapisywać od razu do komórek, bez pośrednictwa tablicy. Oczywiście wyłączając odświeżanie. Np

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Edit: Dopisałem wyjście z pętli. To znacznie przyśpieszy działanie.

    0
  • #3 24 Lut 2013 11:05
    basiaw7
    Poziom 2  

    adamas_nt napisał:
    Zdaje się, że szybciej byłoby zapisywać od razu do komórek, bez pośrednictwa tablicy. Oczywiście wyłączając odświeżanie. Np
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Edit: Dopisałem wyjście z pętli. To znacznie przyśpieszy działanie.



    Niestety przy tak dużej ilości danych Excel dalej się zawiesza,zastanawiam się czy jest jakiś inny sposób niż porównywanie każdej komórki z każdą? Dopiero od niedawna mam styczność z makrami, dlatego będę wdzięczna za wszystkie podpowiedzi.

    0
  • #4 24 Lut 2013 11:35
    marcinj12
    Poziom 40  

    Pytanie, czy każdy wiersz może mieć dokładnie 0 lub 1 odpowiadających mu wierszy z przeciwną kwotą. Bo jeżeli chcesz porównywać kredyt noty i faktury biorąc pod uwagę jedynie przeciwną kwotę oraz nazwę firmy, to łatwo mi wyobrazić sobie sytuację, że firma A w obrębie powiedzmy miesiąca wystawia 5 faktur po 1000zł i jedną kredyt notę na -1000zł: co wtedy?

    0
  • #5 24 Lut 2013 11:57
    basiaw7
    Poziom 2  

    marcinj12 napisał:
    Pytanie, czy każdy wiersz może mieć dokładnie 0 lub 1 odpowiadających mu wierszy z przeciwną kwotą. Bo jeżeli chcesz porównywać kredyt noty i faktury biorąc pod uwagę jedynie przeciwną kwotę oraz nazwę firmy, to łatwo mi wyobrazić sobie sytuację, że firma A w obrębie powiedzmy miesiąca wystawia 5 faktur po 1000zł i jedną kredyt notę na -1000zł: co wtedy?


    No wiec tak, może się zdarzyć że będzie kilka faktur na tą samą kwotę i 1 kredyt nota na przeciwną kwotę, wówczas jest obojętne, którą fakturę "zmeczujemy" z tą kredyt notą.

    0
  • Pomocny post
    #6 24 Lut 2013 13:09
    marcinj12
    Poziom 40  

    Tak się składa, że niedawno robiłem dla naszych finansów coś podobnego. Program, po uproszczeniu, w załączniku, może jakoś Cię natchnie. ;)
    Zamiast kopiować do innej zakładki - grupuje pasujące linie. Dla 5000 linii jak w przykładzie działa u mnie, po drobnej modyfikacji, ok. ~4s (przy ~260s dla poprzedniego makra). Być może zmiana Range() na Cells() jeszcze minimalnie go przyspieszy.

    0