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.

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

11 Kwi 2018 11:15 360 4
  • 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ś?
  • Pomocny post
    Poziom 35  
    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
  • 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?
  • Poziom 35  
    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
  • Poziom 11  
    Dziękuję za pomoc Prot