Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.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

16 Maj 2010 15:55 5078 5
  • Poziom 9  
    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.
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 10  
    Witaj!
    Takie porównanie nie wymaga makro, wystarczy zwykła formuła, jeśli zamieścisz wzorcowy arkusz, to napisze to w kilka minut.
  • Poziom 9  
    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.
  • 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
  • Poziom 9  
    Dzieki. Wlasnie o to mi chodzilo. Niedlugo siade do tego makra i sporbuje cos wyrzezbic. Jak na czyms utkne to sie jeszcze odezwe.
  • Poziom 9  
    Tematu wprawdzie nie rozwiazalem, ale okolicznosci sprawily, ze nie temat nie jest juz aktualny. Dziekuje, za wszelka pomoc.