Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel makro - porownanie wierszy w tabelach i kopiowanie

lucki-lucek 16 Maj 2010 15:55 4706 5
  • #1 16 Maj 2010 15:55
    lucki-lucek
    Poziom 7  

    Witam,
    dzis kolejna zagadka-zagwozdka:
    sa w Excelu dwie tabele (rozmiar taki sam) obie maja identyczne wartosci w pierwszej kolumnie z ta roznica, ze nie koniecznie w tej samej kolejnosci. Pierwsza tabela (powiedzmy - A) jest wypelniona, tabela B jest pusta (oprocz oczywiscie pierwszej kolumny). I teraz zaczyna sie jazda: chodzi o to aby makro wyszukiwalo identyczna wartosc z kolumny tabeli A w kolumnie tabeli B i jesli znajdzie to kopiowalo cala zawartosc tego wiersza z A do B. I tak trzeba przejrzec i porownac wszystkie wartosci z tabeli A. Jesli sie zdarzy, ze ich nie ma w B to pojawia sie MsgBox z informacja ile takich przypadkow znalazl. I tyle.
    Reszta zajme sie recznie.

    Mysle, ze nie jest specjalnie skomplikowane. Udalo mi sie napisac kopiowanie calej tabeli bez porownywania wierszy czy kopiowanie wierszy, ktorych zawartosc w pierwszej kolumnie jest inna niz zero ale opisanego pb nie moge narazie przeskoczyc.

  • #2 16 Maj 2010 17:03
    orangula
    Poziom 9  

    Witaj!
    Takie porównanie nie wymaga makro, wystarczy zwykła formuła, jeśli zamieścisz wzorcowy arkusz, to napisze to w kilka minut.

  • #3 17 Maj 2010 08:27
    lucki-lucek
    Poziom 7  

    Tak, tylko formula nie otworzy pliku zrodlowego i go nie zamknie a z zalozenia ma to byc robione z automatu. Poza tym to makro podepne sobie potem pod przycisk, i bedzie sie odpalalo kiedy ja tego bede chcial a nie przy kazdym otwarciu pliku. Tu jest przewaga makra nad formula.
    Gdybym chcial to zrobic formulami to nie zawracal bym wam glowy takimi prostymi sprawami.
    Ale dzieki za reakcje i odpowiedz.

  • #4 17 Maj 2010 21:57
    walek33
    Poziom 28  

    Makro jest proste i nie wymaga wiele pracy.
    W pierwszej kolejności sprawdzasz długość tabeli. Następnie w pętli powtarzanej tyle razy ile wynosi długość z pierwszej komórki pobierasz do zmiennej wartość do wyszukania w drugiej tabeli i kopiujesz resztę potrzebnych danych. Przechodzisz do tabeli z wynikiem, wyszukujesz wartość ze zmiennej w pierwszej kolumnie i z odpowiednim przesunięciem wklejasz dane do tabelki. Jeżeli wartość ze zmiennej nie została znaleziona można użyć MSBox lub dodatkowej tabeli do wklejenia błędów (których moim zdaniem być nie ma prawa ponieważ na początku sam stwierdzasz, że "obie maja identyczne wartości w pierwszej kolumnie z tą różnicą, że nie koniecznie w tej samej kolejności"). Na tym pojedyncza operacja się kończy. Po dobrnięciu pętli do końca wszystkie dane powinny być przekopiowane (a tabela z błędami pusta). :D

  • #5 24 Maj 2010 01:07
    lucki-lucek
    Poziom 7  

    Dzieki. Wlasnie o to mi chodzilo. Niedlugo siade do tego makra i sporbuje cos wyrzezbic. Jak na czyms utkne to sie jeszcze odezwe.

  • #6 20 Gru 2010 15:27
    lucki-lucek
    Poziom 7  

    Tematu wprawdzie nie rozwiazalem, ale okolicznosci sprawily, ze nie temat nie jest juz aktualny. Dziekuje, za wszelka pomoc.

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme