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 zakresu w zależności od daty w komórce

joachimm 21 Sty 2016 17:53 870 4
  • #1 21 Sty 2016 17:53
    joachimm
    Poziom 2  

    Witam! Jestem tu nowy więc pozdrawiam wszystkich!
    Przeglądałem to forum i wiele rozwiązań zastosowałem w moim skoroszycie, jednak nie potrafię poradzić sobie z takim problemem: chodzi o kopiowanie wiersza z jednego arkusza do drugiego w zależności od daty zawartej w jednej z komórek.
    Chodzi o przekopiowanie danych z KP i KW do raportu kasowego.
    Kopiowane z KP/KW są: data, numer KP/KW, opis, symbol, przychód/rozchód. Teraz mam po prostu tak, że ponieważ jest styczeń, to te dane kopiowane są do RK1 na styczeń, jak będzie luty, to ręcznie będę musiał zmienić arkusz docelowy na RK2.
    Czy da się to jakoś zautomatyzować, żeby w zależności od daty (miesiąca) w "C54" zakres komórek był kopiowany do kolejnych raportów kasowych?

    0 4
  • #2 21 Sty 2016 20:56
    adamas_nt
    Moderator Programowanie

    Witamy
    Na pewno da się. Załącz plik z przykładem i danymi wpisanymi ręcznie, z opisem dlaczego i na jakich zasadach. Koniecznie w oryginalnym układzie danych. czy raport kasowy (RK) zawsze występuje jako osobny (jak wynika z opisu) arkusz z unormowaną nazwą?

    0
  • #3 21 Sty 2016 21:51
    joachimm
    Poziom 2  

    Dzięki wielkie za zainteresowanie!
    Ma to działać tak:
    - w kolumnie ze składkami albo wpisujemy ręcznie kwotę i klikamy "Dodaj do KP", albo przez podwójne kliknięcie w wyskakującym oknem, wpisaniem kwoty itd. dane są przenoszone do KP
    - w KP "Zapisz i wydrukuj" co powoduje automatyczne dodanie KP (lub KW) do raportu.
    - mija miesiąc, przychodzi nowy i... jak to ma się zapisać do raportu za luty? Oto jest pytanie!

    0
  • #4 21 Sty 2016 22:48
    adamas_nt
    Moderator Programowanie

    Najprościej:
    1. Zadeklaruj zmienną publiczną w 'Module1' Np "Public KolToSh As Integer"
    2. W procedurze 'DaneDoKPSkladka' wstaw linię: "KolToSh = ActiveCell.Column - 16"
    Najlepiej zaraz za "If Val(ActiveCell.Value) > 0 Then"
    3. W procedurze 'zapiszKPdoRK_1' zamiast: "Sheets("RK1S").Select" wstaw: "Sheets("RK" & KolToSh & "S").Select"

    Zastrzegam sobie prawo "do niemania racji" ;)

    0
  • #5 22 Sty 2016 07:36
    joachimm
    Poziom 2  

    Tak, to działa! Styczeń luty mamy za sobą :)
    Zmieniłem datę na marzec i niestety :( kopiuje do lutego

    0