Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA - Wyszukiwanie faktur z kwotami i wyznaczenie różnic

zaionslawek 25 Cze 2014 12:39 1269 10
  • #1 25 Cze 2014 12:39
    zaionslawek
    Poziom 7  

    Witam,
    Widzę że podobne tematy były poruszane, niestety po przejrzeniu forum elektrody i googla nie potrafię do końca uzyskać zamierzonego efektu. Wyjaśniam o co chodzi. W skrócie mówiąc zależy mi na tym aby kwoty faktur A porównać z kwotami faktur B, przenieść je do kolumny obok i wskazać czy są jakieś różnice w kwotach.

    Łącznie istnieje 6 kolumn (adresowane od A1 do F1). W tym są 4 kolumny z danymi, oraz dwie kolumny wynikowe.


    przykład:

    FakturyA Netto FakturyB Netto Faktury A i B Różnica
    abc 1 abc 1 abc 0
    abb 2 abb 3 abb 1
    abd 3 abd 3 abd 0
    abg 4 abg 4

    Docelowo chciałbym aby makro porównywało ze sobą wszystkie fakturyA z kwotami i fakturyB z kwotami, następnie faktury powinny byc przerzucone do kolumny Faktury A i B a w kolumnie Różnica powina być różnica kwoty FakturB - FakturyA. Dodatkowo komórki z wynikami ujemnymi mogą być podświetlone na czerwono, zera na zielono, dodatnie na niebiesko.

    Edytuje makro, które znalazłem w internecie. W tej chwili porównuje mi zakres kolumny A i przerzuca razem z kwotami do E i F. Nie potrafie porównać kolumn A z C przy użyciu B i D. Jeżeli uważacie że warto je edytować aby uzyskać taki efekt to bardzo proszę o poradę, jeśli uważacie że trzeba napisać od nowa, będę wdzięczny za pomoc :)

    Kod: vb
    Zaloguj się, aby zobaczyć kod

  • #2 25 Cze 2014 17:11
    JRV
    Specjalista - VBA, Excel

    Witam.
    Może FakturyA i FakturyB są powtarzane w kolumnie?
    Jeśli tak, jak kształtować różnica?

  • #3 25 Cze 2014 20:17
    zaionslawek
    Poziom 7  

    Beda sie powtarzac, i podczas sprawdzania faktur w kolumnach, powinny sie sprawdzac odpowiednio kwoty. Pole Różnica ma wskazać roznice miedzy kwotami. Opisałem to w przykładzie, niestety dziwnie go "zedytowało"

  • #4 25 Cze 2014 21:31
    JRV
    Specjalista - VBA, Excel

    Ale do zrozumienia, że liczba FakturA i FakturB są taka sama, jak te, które się powtarzać, jest również taka sama?
    I sprawdzac, jak są one rejestrowane w wierszach w dół(Zakładam, że nie są one sortowane).
    Może być przykładowy plik?

  • #5 26 Cze 2014 07:22
    zaionslawek
    Poziom 7  

    Liczba dla Faktury A moze byc inna niz liczba Faktury B i to powinno zwracac makro (różnice między nimi)
    Dodatkowo moze byc sytuacja ze FakturaA AAA istnieje ale nie ma jej w kolumnie FakturaB. Jednym słowem makro powinno sprawdzic i przerzucic wszystkie istniejace faktury do kolumny różnica, a te które się powtarzają powinny mieć porónane kwoty(różnice) zeby wiedziec czy sie zgadzaja czy są różne.

    VBA - Wyszukiwanie faktur z kwotami i wyznaczenie różnic

  • #6 26 Cze 2014 11:36
    JRV
    Specjalista - VBA, Excel

    Kod: vb
    Zaloguj się, aby zobaczyć kod

  • #7 26 Cze 2014 12:50
    zaionslawek
    Poziom 7  

    Dziękuję.
    podczas debugowania ponizszych wierszy występuje błąd Run time error 13 type mismatch

    Kod: vb
    Zaloguj się, aby zobaczyć kod



    Chyba problem z typem danych, bo odejmuje liczby od stringa..jak zmieniam na countDict(category) + value to kompiluje prawidłowo

  • #8 26 Cze 2014 16:51
    JRV
    Specjalista - VBA, Excel

    zaionslawek napisał:
    countDict(category) + value

    zaionslawek napisał:
    w kolumnie Różnica powina być różnica kwoty FakturB - FakturyA.

    Dlaczego kwota "string"

  • #9 27 Cze 2014 10:39
    zaionslawek
    Poziom 7  

    Ok juz rozumiem, przy deklarowaniu zmiennej value jako integer mialem bład mismatch dlatego ze w kolumnie F1 byl string i zwracało błąd. Usunołem wpis i dziala.
    Zmieniłem jeszcze:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    i prawidłowo liczy, tzn nie ustawia minusa przed wartością.
    Wszystko się powinno zgadzać. Bardzo dziękuję za pomoc i poświęcony czas!

  • #10 27 Cze 2014 14:53
    JRV
    Specjalista - VBA, Excel

    zaionslawek napisał:
    If value <> Empty Then countDict(category) = value
    i prawidłowo liczy, tzn nie ustawia minusa przed wartością.

    Ale spójrz na ekranie strzał w post # 5, zwłaszcza na linii, gdzie pkn = 5
    (FakturaA -5, FakturaB- brak, FaktB - FaktA = -5) Zgodnie z tym -value.
    Jest 2 petli, 1 - po FaktB, 2 - po FaktA i tylko w 2 '-value'

  • #11 03 Paź 2014 14:23
    zaionslawek
    Poziom 7  

    Problem rozwiązany, makro działa poprawnie, dzięki pomocy kolegi JRV

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME