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.

VBA EXCEL - Porównaj kmórki w dwóch skoroszytach

dajmilogin 14 Lip 2015 13:42 681 12
  • #1 14 Lip 2015 13:42
    dajmilogin
    Poziom 10  

    Witam,

    Mam dwa skoroszyty, jeden który generuje sobie codziennie z systemu ZMIENNY.
    Drugi to taki stały nazwijmy go KLAS, fajnie by było gdyby był on zamknięty podczas wykonywania procedury!
    Mam problem jak napisać makro, które porówna mi dane z kolumny A w obu raportach i jeżeli znajdzie w ZMIENNYM taka samą komórkę jak W KLAS! to ją usunie ze ZMIENNEGO?

    Może ktoś pomóc?

    Dodano po 12 [minuty]:

    Dodam, że znalazłem podobny temat:
    https://www.elektroda.pl/rtvforum/topic2564587.html
    Tylko jak go przerobić jeżeli arkusze leżą w innych skoroszytach?

    0 12
  • Pomocny post
    #4 14 Lip 2015 20:13
    JRV
    Specjalista - VBA, Excel

    Odpalac ze ZMIENNEGO

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Chociaż bardziej logicznie makro w "klasie"

    1
  • #5 15 Lip 2015 10:18
    dajmilogin
    Poziom 10  

    Nie działa, siedzę godzinę, analizuję i nie wiem o co chodzi.
    Ścieżka dopasowana dobrze, makro uruchamia się (otwiera klas itd.)
    ale nie usuwa powtarzających się wierszy.

    0
  • #6 15 Lip 2015 10:49
    JRV
    Specjalista - VBA, Excel

    Mam przykłady z postu # 3
    Makro w zmienny.xlsx. Działa. Excel 2007.
    p.s.
    Sprobuj
    If k > 0 Then Rows(r).Delete shift:=xlUp

    0
  • #7 15 Lip 2015 11:37
    dajmilogin
    Poziom 10  

    Specjalnie pobrałem dla pewności przykłady z postu #3
    Problem w tym, że
    r = Cells(Rows.Count, 1).End(xlUp).Row
    wykazuje "1"
    i nie uruchamia pętli.
    Jeżeli zmienię na
    r = 10
    to wtedy k za każdym razem jest "0" i nic nie usuwa.

    Makro uruchamiam z "Zmienny"
    Mam office 2010

    0
  • #8 15 Lip 2015 12:59
    JRV
    Specjalista - VBA, Excel

    W zmienny.xls w kolumnie 1 jest 17 wierszy.
    Wtedy
    r = Cells(Rows.Count, 1).End(xlUp).Row
    tz. jak z komorki A65536(Rows.Count=65536, kolumna=1) kliknieme Ctrl+ strzałka w górę, to kursor stane w ostatni wiersz z dane.
    hmm... a je to A17, wiersz r=17

    Dodano po 5 [minuty]:

    np. "KWZE/MCPKLU6/0001/07/15" jest w obu plikach w kolumnie A?

    Dodano po 1 [minuty]:

    Cells(x, y) jest odwolanie do komorki w wierszu x, kolumnie y

    0
  • #10 15 Lip 2015 13:50
    JRV
    Specjalista - VBA, Excel

    Wygląda, że makro został zapisany w oddzielnom skoroszycie, a nie w zmienny.xls

    0
  • #11 15 Lip 2015 13:53
    dajmilogin
    Poziom 10  

    Makro jest zapisane w personalnych, nie mogę w zmiennym, bo jest on generowany systemowo od zera co operacja. Stąd nazwa zmienny.

    0
  • Pomocny post
    #12 15 Lip 2015 14:01
    JRV
    Specjalista - VBA, Excel

    dajmilogin napisał:
    Stąd nazwa zmienny.

    Jeśli nazwa jest zawsze taka sama to zamiast
    Code:
    ThisWorkbook.Activate
    wpisz
    Code:
    Workbooks("zmienny.xlsx").Activate


    Dodano po 1 [minuty]:

    bo ThisWorkbook jest skoroszyt, w ktorem makro

    1
  • #13 15 Lip 2015 14:08
    dajmilogin
    Poziom 10  

    Działa, wielkie dzięki za cierpliwość i pomoc.

    pozdrawiam

    0