Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

makro - Excel: kopiowanie zakresu danych w zależności od 1 kolumny

grenouille 15 Mar 2014 17:49 2085 3
  • #1
    grenouille
    Level 2  
    Witam,
    Mam następujący problem. Mam arkusz o zmiennej ilości wierszy. Wypełnione kolumny zawsze od A do J.
    W kolumnie A występują kody, kody mogą się powtarzać- dla ułatwienia jeśli się powtarzają są jedne pod drugim ale nie ma stałej określonej liczby powtórzeń.
    Chodzi mi o to by makro sprawdzało kod w kolumnie A - unikat kopiujemy do Arkusza 2 z wartościami od B-J, następnie makro powinno sprawdzić kolejny kod w Arkuszu 1, jeśli taki sam jak poprzedni - kopiuje komórki B-J do Arkusza 2, na koniec wiersza.
    1 kodu, itd. następnie sprawdza kolejny kod jeśli :nowy: kopiuje kolumny A-J do Arkusza 2, do kolejnego wiersza.
    W załączeniu plik dane wejściowe i oczekiwany wynik.
    Z góry dziękuję za pomoc.

    makro - Excel: kopiowanie zakresu danych w zależności od 1 kolumny makro - Excel: kopiowanie zakresu danych w zależności od 1 kolumny
  • Helpful post
    #2
    JRV
    VBA, Excel specialist
    Witaj.
    Zakładając, że oryginalne dane na pierwszym arkuszu, a wynik na drugi:
    Code: vb
    Log in, to see the code
  • #3
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Ewentualnie jeszcze takie rozwiązanie formułami.
    Zakres danych nazwany kody (można wydłużyć w Menedżerze nazw).
    Obszar zaznaczony na żółto w Arkuszu2 stanowi wynik formuły tablicowej. Można kopiować w prawo do kolejnych kolumn i w dół w miarę potrzeby.
    Formuły dla Excela >=2007. Po wczytaniu przykładowego pliku zapisać jako .xlsx
    Pozdrowienia.
  • #4
    grenouille
    Level 2  
    JRV rozwiązanie działa świetnie, dodałam jedynie
    Sub upraw()
    Dim bsk As Range, bsr As Range
    Dim rb&, rd&, cd&, cm&
    Set bsk = ThisWorkbook.Sheets(1).Columns(1).Cells
    Set bsr = ThisWorkbook.Sheets(1).Range("B:J").Rows
    rb = 2: rd = 2
    ---> cd = 2 <---

    ponieważ kopiowało do kolumny I, po tej kosmetycznej zmianie działa genialnie. Bardzo bardzo dziękuję :)