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.

[Rozwiązano] VBA pobieranie danych z odpowiednich arkuszy na podstawie aktualnego tygodnia

mar-ilo 11 Kwi 2018 11:15 255 4
  • #1 11 Kwi 2018 11:15
    mar-ilo
    Poziom 11  

    Witam!
    Chciałbym osiągnąć następujący efekt. Mam plik excel o nazwie "tygodnie" w którym kolejne arkusze nazywają się T-1, T-2, T-3… nazwy oznaczają tydzień w roku kalendarzowym i są tworzone z tygodniowym wyprzedzeniem, czyli arkusz T-16 jest dodawany dopiero w tygodniu 15 itd.
    W kolejnym pliku o nazwie "suma pól", którego lokalizacja jest inna niż pliku "tygodnie" chciałbym wstawić makro które na podstawie numeru aktualnego tygodnia, (który w pliku "suma pól" jest w komórce F1 lub w H1 sformatowany do wzoru nazwy arkuszu w pliku "tygodnie") wyciągałoby używane w ciągu danego tygodnia (tego co automatycznie się zmienia w komórce F1) artykuły. Problem w tym, że w pliku tygodnie przykładowy 15 tydzień podzielony jest na dwa arkusze ponieważ od poniedziałku do czwartku jest w arkuszu T-15 i dodatkowo od czwartku do soboty jest w arkuszu T-16.
    Chodzi dokładnie o to abym po zmianie tygodnia, czyli co poniedziałek nie musiał na nowo programować formuł tak aby zaczytywały dane z odpowiednich arkuszy, tylko żeby działo się to automatycznie. Obecnie w kolumnie G zrobiłem to za pomocą funkcji, jednak w tym rozwiązaniu muszę w formułach co tydzień zmieniać nazwę tygodnia z którego pobrać dane. Finalnie chciałbym to rozwiązać tak, aby w kolumnie A były tylko te artykuły, które są używane od poniedziałku do soboty w danym tygodniu z pominięciem pustych pól, no i aby działo się to automatycznie, więc ostatecznie dla mojego przykładu w kolumnie A miały by się znaleźć te pozycje które obecnie umieściłem tam ręcznie.
    Czy takie makro da się zrobić? Pomoże ktoś?

    0 4
  • Pomocny post
    #2 19 Kwi 2018 20:37
    Prot
    Poziom 32  

    mar-ilo napisał:
    Czy takie makro da się zrobić?

    Tak :D , ale chyba lepiej dwa oddzielne :spoko:

    Po drobnych zmianach w pliku tygodnie.xlsm
    VBA pobieranie danych z odpowiednich arkuszy na podstawie aktualnego tygodnia2018-04-1..1).png Download (44.75 kB)
    umieszczony w Module1 kod sprawdza "stan arkuszy" i ewentualnie przygotowuje arkusz na nowy tydzień :!:

    Zmodyfikowano również plik suma pól.xlsm
    VBA pobieranie danych z odpowiednich arkuszy na podstawie aktualnego tygodnia2018-04...png Download (23.28 kB)
    i wyposażono w makro do kopiowania potrzebnych Ci wartości z aktualnego tygodnia tj z odpowiedniego arkusza pierwszego pliku :ok: - przyczym jeśli prawidłowo wprowadzisz ścieżkę dostępu źródłowego pliku - to nawet nie musisz go otwierać :please: :idea:


    suma p..zip Download (81.8 kB)Punkty: 3 dla użytkownika

    0
  • #3 20 Kwi 2018 15:12
    mar-ilo
    Poziom 11  

    Działa prawie dobrze, mamy 20.04.18r. wiec tydzień w roku 16 i prawidłowo pobrało dane z "tygodnie" arkusz T-16, powinno jednak jeszcze dodatkowo dodać z T-17 artykuł 25: artykuł 28 ponieważ do kolumny J w arkuszu T-17 jest jeszcze kalendarzowy tydzień 16... wiem, że to skomplikowane, ale to są pliki które muszą w arkuszach mieć taki a nie inny układ dni.

    Da się to makro zmodyfikować aby automatycznie i te dane pobierało?

    0
  • #4 20 Kwi 2018 19:58
    Prot
    Poziom 32  

    mar-ilo napisał:
    Czy takie makro da się zrobić? Pomoże ktoś?

    Przesłałem gotowe pliki :!: :?:

    mar-ilo napisał:
    powinno jednak jeszcze dodatkowo dodać z T-17 artykuł 25: artykuł 28

    Po raz kolejny spotykam się z sytuacją, że autorzy postów co innego myślą, a co innego piszą :cunning:
    Jeśli zmieniasz pierwotne założenia z postu #1 - to zmodyfikuj stosownie treść kodu :ok: wszak nie jesteś już w VBA nowicjuszem. Przedstaw swoją pracę na forum jak coś nie będzie działać - pomożemy :D

    0
  • #5 16 Mar 2019 00:56
    mar-ilo
    Poziom 11  

    Dziękuję za pomoc Prot

    0