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 - Kopiowanie okreslonych komórek z arkusza do arkusza

Apidam 11 Wrz 2012 09:48 10455 4
  • #1 11 Wrz 2012 09:48
    Apidam
    Poziom 6  

    Witam serdecznie. Jest to mój pierwszy post więc proszę o wyrozumiałość. Mam pewien problem a że VBA nie znam zbyt dobrze ( raczej jakieś podstawy) trochę mnie to przerasta. Szukałem coś nt. temat ale ciężko znaleźć jakiś podobny przykład. Do sedna:

    Dane:

    W pliku znajduje sie kilka arkuszy : arkusz1, arkusz2,arkusz3, arkusz4 itd. W 4 pierwszych arkuszach znajduje sie zakres danych c37:AB37 - dla każdego z arkuszy jest taki sam. Kilka wierszy pod tym zakresem znajduje się kolejny zakres z datami C27:AB27.

    Cel:
    Makro umożliwiające kopiowanie tylko tych wartości komórek które są mniejsze od 0. Skopiowane komórki mają być wklejone jedna pod drugą w kolumnie B w arkusz5. Jednocześnie dla komórek które zostały skopiowane ma byc kopiowana data drugiego zakresu i wklejana do kolumny A. Na przykładzie: jeśli dana komórka jest ujemna np. g37 to kopiowana jest do pierwszej wolnej komórki w arkusz5 w kolumnie b jednocześnie kopiowana jest przypisana do niej data w tym wypadku komórka g27 do tego samego wiersza w kolumnę a. Mam nadzieje że się napisałem zrozumiale :)

    Co ważne: w zakresie z danymi , wartości nie są stałe tylko wyliczane za pomocą funkcji z innych danych, tak więc należy kopiować tylko ich wartość.

    Z góry dzięki za wszelkie sugestie i pomoc.

    Pozdrawiam

    0 4
  • Pomocny post
    #2 11 Wrz 2012 13:44
    pitermxa
    Poziom 17  

    Po tym opisie wydaje mi się, że nie potrzebne jest w ogóle makro.
    Prawdopodobnie dało by radę zrobić to formułami.
    Załącz plik z przykładowymi danymi i zobaczymy co da się zrobić.

    1
  • #4 11 Wrz 2012 16:24
    pitermxa
    Poziom 17  

    Jednak szybciej było napisać makro:)
    W załączniku.
    Z tym, że w twoich danych (w załączonym pliku) dane, które chcesz kopiować znajdują się chyba w wierszu 8 a nie 37.
    Zrobiłem makro kopiujące dane z wiersza 8 pod warunkiem, że są mniejsze od zera.
    Ponadto, żeby data również się przepisała, musi znajdować się dokładnie 5 wierszy powyżej danych z których są kopiowane wartości.
    Pamiętaj, że dane też będą kopiowane ze wszystkich arkuszy oprócz arkusza o nazwie "Sheet5"
    Kod nie jest trudny, przeanalizuj a na pewno zrozumiesz jego strukturę.
    W razie czego pytaj.

    2
  • #5 11 Wrz 2012 17:48
    Apidam
    Poziom 6  

    Wielkie dzięki :) O to właśnie mi chodziło! Faktycznie kod prosty ale sam bym tego nie wymyślił (jeszcze dużoooo nauki przede mną ). Co do Twoich uwag to musiałem orginalny pilk trochę przerobić ( niestety były tam ważne dane) dlatego trochę te zakresy się pozmieniały. Ogólnie to mam to zamiar wprowadzić w dużo większy plik ale to już trochę pogłówkuje :) Jeszcze raz dzięki.

    Pozdrawiam

    0