Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel - Zmiana obszaru wydruku w zależności od koloru komórki w odniesieniu

hadede 27 Lut 2017 21:51 813 13
  • #1 27 Lut 2017 21:51
    hadede
    Poziom 5  

    Witam
    Potrzebuję stworzyć grafik oraz odnośniki w postaci kart pracy w kolejnych arkuszach dla każdego pracownika.Każdy arkusz ma posiadać cztery karty pracy z czego ze str 1(obszaru wydruku) na umowę o pracę a str 2 umowy zlecenie.

    1.Czy istnieje funkcja albo sposób dzięki któremu po zmianie koloru komórki "Pracownicy" zmieniłby się obszar wydruku "Karta" drukując np tylko 1stronę (umowę o pracę) a bez koloru 2 str(umowa zlecenie)?

    2.Czy jest taka możliwość aby po przekroczeniu sumy godz (np normatywu 160)
    automatycznie godziny zapisywały się na drugiej karcie po prawej stronie jako nadgodziny?

    0 13
  • Pomocny post
    #2 28 Lut 2017 09:48
    adamas_nt
    Moderator Programowanie

    1. Zmiana koloru nie jest zdarzeniem, więc musisz uruchamiać makro (w ostateczności można wykorzystać 'SelectionChange', ale ma to w tej sytuacji swoje minusy)
    Następna sprawa, to skąd Excel "ma wiedzieć" jaki kolor był przed zmianą? Potrzebna byłaby tabelka w dodatkowym arkuszu kolor>zakres obszaru wydruku.

    2. Myślę, że wystarczy zwykłe JEŻELI(Arkusz1!suma>160;Arkusz1!suma-160;"") w drugim arkuszu

    0
  • #3 28 Lut 2017 09:54
    marek003
    Poziom 40  

    Coś chcesz ale albo nie do końca wiesz co albo nie potrafisz tego do końca opisać.
    Ad 1.
    Aby to działało tak jak piszesz trzeba stworzyć proste makro.
    Ale wydaje mi się że można w prosty sposób (bez makra) uprościć to "zadanie"
    np. przy liście pracowników w kolejnej komórce przy nazwisku dać wybór czy jest to pracownik na umowę o prace czy na zlecenie. W arkuszu Karta byłaby tylko jedna strona a jej nagłówek (zlecenie czy umowa) pobierany by był z komórki przy pracowniku.
    Ad2.
    Jest możliwość, ale to co przedstawiłeś wpisywane jest ręcznie więc ... jaka automatyka
    No chyba że np. po przekroczeniu 160 pozostałe puste komórki zmienią barwę i człowiek który wpisuje godziny będzie wiedział że już ma wpisywać kolejne dane w inne komórki.

    dodane po chwili
    ----------------------------
    Jak zwykle się spóźniłem :)

    0
  • #4 28 Lut 2017 11:05
    hadede
    Poziom 5  

    marek003 napisał:
    Coś chcesz ale albo nie do końca wiesz co albo nie potrafisz tego do końca opisać.

    Tzn mniej więcej wiem jaki chciałbym uzyskać efekt końcowy.Nie jestem specem od Excela więc nie za bardzo wiem jak to zrobić więc raczej to "drugie"
    .
    marek003 napisał:
    Ale wydaje mi się że można w prosty sposób (bez makra) uprościć to "zadanie"
    np. przy liście pracowników w kolejnej komórce przy nazwisku dać wybór czy jest to pracownik na umowę o prace czy na zlecenie. W arkuszu Karta byłaby tylko jedna strona a jej nagłówek (zlecenie czy umowa) pobierany by był z komórki przy pracowniku.

    Pomysł bardzo ciekawy tylko tą 'formatkę' zrobiłem na szybko żeby łatwiej wyjaśnić w temacie o co mi chodzi.W docelowej "formatce "karta umowy o prace różni się w znaczny sposób od karty umowy zlecenia ,dlatego kombinowałem ze zmianą obszaru wydruku.
    Myślałem jeszcze nad przypisaniem dwóch kolejnych arkuszy do jednego pracownika choć wolałbym to maksymalnie uprościć.
    marek003 napisał:
    Jest możliwość, ale to co przedstawiłeś wpisywane jest ręcznie więc ... jaka automatyka

    Tak jak napisałem wyżej nie jest to ostateczna wersja .Będę musiał porobić w arkuszach odniesienia do grafiku(a że nie wiem jak to uprościć robię to po kolei komórka po komórce).

    Dodano po 12 [minuty]:

    adamas_nt napisał:
    Zmiana koloru nie jest zdarzeniem, więc musisz uruchamiać makro (w ostateczności można wykorzystać 'SelectionChange', ale ma to w tej sytuacji swoje minusy)
    Następna sprawa, to skąd Excel "ma wiedzieć" jaki kolor był przed zmianą? Potrzebna byłaby tabelka w dodatkowym arkuszu kolor>zakres obszaru wydruku.

    Ok a w jaki spośob zmienić obszar wydruku w odniesieniu zakładając że wartość w komórce musi być np >0?

    0
  • #5 28 Lut 2017 11:58
    marek003
    Poziom 40  

    To jeszcze co do AD2
    Rozumiem że karta ma być wynikiem - będzie pobierać dane z grafiku - tak?
    Jeżeli tak to w grafiku mam tylko czas pracy a nie "start-stop". To będzie uzupełnione?
    Będziesz pracował na liczbach czy na czasie bo 8 to nie to samo co 8:00 ?


    Co do ad1 jeżeli nie będziemy chcieli korzystać z makr można to zrealizować za pomocą autofiltru i białego tekstu. Jak odpowiesz na wcześniejsze pytania to prześlę przykład jak by to wyglądało.

    -----------
    Jeszcze jedno: jak się zdecydujesz pracować na czasie czas zawsze będziesz musiał wstawiać z dwukropkiem bo inaczej excel potraktuje liczbę jako cały dzień.

    Tak na marginesie u nas w firmie lista obecności/pracy jest prowadzona na zasadzie:
    Pracownik, godzina startu, ilość godzin
    ale to nasz system zapisu wywodzący się jeszcze z zapisów papierowych .

    Dodane po dłuższym czasie:
    ------------------------------------
    W załączeniu przykład pliku.
    Karta wylicza się automatycznie masz tylko wybrać pracownika.
    Z tym że formuły są tylko w "bloku" praca (nie robiłem dla zleceń)

    "Przełączanie" bez makra po naciśnięciu szarego kwadracika filtru i wybraniu odpowiedniej opcji ale jak zaznaczyłem na razie nie wprowadzałem formuł w zleceniach. To tylko tak dla poglądu.

    Przyszło mi tez na myśl że jak wspomniałeś o małej wiedzy na temat excela to do końca nie wiem czy sobie poradzisz z dostosowaniem tych formuł do siebie - ale trzeba być dobrej myśli :)

    0
  • #6 28 Lut 2017 19:39
    hadede
    Poziom 5  

    marek003 napisał:
    Rozumiem że karta ma być wynikiem - będzie pobierać dane z grafiku - tak?
    Jeżeli tak to w grafiku mam tylko czas pracy a nie "start-stop". To będzie uzupełnione?
    Będziesz pracował na liczbach czy na czasie bo 8 to nie to samo co 8:00 ?

    W załączonym pliku poniżej -tak to będzie wyglądać mniej więcej.
    Dane pobierze z grafiku.
    Dane będą uzupełniane ;Gorna lewa komórka to godz" od" dolna "do".Prawa górna to liczba godz w danym dniu (dobie) ,dolna ilość godz nocnych.
    Będę pracował na liczbach.
    marek003 napisał:
    Przyszło mi tez na myśl że jak wspomniałeś o małej wiedzy na temat excela to do końca nie wiem czy sobie poradzisz z dostosowaniem tych formuł do siebie - ale trzeba być dobrej myśli :)

    Heh no właśnie staram się uzupełnić wiedzę na bieżąco.Różnie mi z tym idzie np mam problemy z prostszymi formułami jak ta podana przez adamas_nt JEŻELI(Arkusz1!suma>160;Arkusz1!suma-160;"") u mnie wyskakuje tylko bład #nazwa.Nie wspomnę o dłuższych:P 
    Karty mam w dwóch arkuszach bo nie udało mi się wstawić ich razem.Próbuje zrobić ten filtr .

    0
  • Pomocny post
    #7 01 Mar 2017 10:28
    marek003
    Poziom 40  

    hadede napisał:
    ...u mnie wyskakuje tylko bład #nazwa

    :) Bo funkcja przedstawiona przez kolegę adamas_nt to tylko pogląd.
    Zamiast samego słowa "suma" trzeba wprowadzić sumowany zakres. Z tym że to dość prosto zapisane, :) bo ten zakres musi się zmieniać by to działało tak jak chciałeś w pierwszym poście, bo teraz nie widzę potrzeby - chyba że czegoś nie rozumiem.

    Pozmieniaj ilość godzin pracy w grafiku w moim pliku a zobaczysz jak to działa. Tam jest właśnie zastosowana ta "prosta" funkcja "jeżeli" z tym, że uwzględnia ona jeszcze to jakiego pracownika wybierzesz.

    Teraz przedstawiłeś nowy plik ze zmienioną koncepcją. W czym (z czym) masz teraz kłopot?

    0
  • #8 01 Mar 2017 11:38
    hadede
    Poziom 5  

    marek003 napisał:
    Teraz przedstawiłeś nowy plik ze zmienioną koncepcją. W czym (z czym) masz teraz kłopot?

    Próbuje skopiować te formuły jak w pliku który załączyłeś.
    Chciałbym zrobić ten autofiltr na mojej formatce ale nie wiem czy jest to możliwe ze względu na różne szerokości kolumn w arkuszu 1i 2.

    0
  • Pomocny post
    #9 01 Mar 2017 13:50
    marek003
    Poziom 40  

    hadede napisał:
    Próbuje skopiować te formuły jak w pliku który załączyłeś.

    Nie da się skopiować. Masz całkiem inną strukturę danych źródłowych.
    Te formuły trzeba zrozumieć i napisać je od nowa pod swoje dane.

    hadede napisał:
    Chciałbym zrobić ten autofiltr na mojej formatce ale nie wiem czy jest to możliwe ze względu na różne szerokości kolumn w arkuszu 1i 2.


    Jeżeli umieścisz jedną pod drugą i będzie ci się to podobało to jak najbardziej będziesz mógł zrobić ten autofiltr. Zaznacz w moim pliku całą kolumnę z autofiltrem i zmień kolor czcionki np. na czarny (bo teraz w tej kolumnie jest biały) wtedy zobaczysz jak to działa.


    dodane po czasie
    ------------------------------------

    W załączeniu na twoim przykładzie funkcje wyszukujące dane.
    Aby byli ci sami pracownicy na karcie i w grafice wprowadziłem listę pracowników (zdefiniowana nazwa) pracownika wybierasz z listy

    0
  • #10 01 Mar 2017 16:12
    hadede
    Poziom 5  

    marek003 napisał:

    Jeżeli umieścisz jedną pod drugą i będzie ci się to podobało to jak najbardziej będziesz mógł zrobić ten autofiltr. Zaznacz w moim pliku całą kolumnę z autofiltrem i zmień kolor czcionki np. na czarny (bo teraz w tej kolumnie jest biały) wtedy zobaczysz jak to działa.

    To akurat udało mi się rozgryźć.Chodzi mi tylko o to że jak wkleję jedną pod drugą to w drugiej jest inna szerokość kolumn.Nie wiem jak to obejść. I nie wiem jak zapisać po ustawieniu filtra żeby dolna część arkusza się 'schowała".:P
    Która komórka na karcie ma odniesienie do tej rozwijanej pod nazwiskiem?
    Jak to zawsze w trakcie coś wyniknie i wychodzi na to że podział godz przy normatywie na umowę o pracę będzie inny niż na zlecenie(wynika to z tego że jest podział na dwie firmy).

    0
  • #11 01 Mar 2017 17:51
    marek003
    Poziom 40  

    hadede napisał:
    To akurat udało mi się rozgryźć.Chodzi mi tylko o to że jak wkleję jedną pod drugą to w drugiej jest inna szerokość kolumn.Nie wiem jak to obejść.

    Robisz dwie kolumny jedna o szerokości tej prawidłowej krótszej a druga obok o takiej szerokości by wspólnie z pierwszą kolumną tworzyły tworzyły tą szerszą kolumnę w innej tabeli. Scalasz w tej tabeli komórki jedną z drugą i masz np w tabeli na górze węższą kolumnę a w dolnej tabeli szerszą (ze scalonych komórek)

    Lub robisz tylko podkreślenia przez dwie kolumn tak jak w moim ostatnim pliku kolumna E i F dla karty zleceń.

    hadede napisał:
    I nie wiem jak zapisać po ustawieniu filtra żeby dolna część arkusza się 'schowała"


    Chodzi ci o ukrycie wszystkich wierszy do końca arkusza?
    Po prostu je ukryj, stań na którejkolwiek komórce pod kartą zleceń, wciśnij Ctrl+strzałka w dół. Znajdziesz się na końcu arkusza. Zaznacz cały ostatni wiersz.
    Teraz przesuń pasek do przesuwu arkusza do początku i trzymając Shift zaznacz myszką ostatni wiersz który zaraz będzie ukryty.
    Wszystkie wiersze się zaznaczą - prawy klawisz myszy i wciśnij ukryj.

    hadede napisał:
    Która komórka na karcie ma odniesienie do tej rozwijanej pod nazwiskiem?


    Na podstawie wybranego nazwiska komórka T1 się wylicza. Pokazuje w którym wierszu jest to nazwisko. Później stanowi to podstawę do szukania danych.

    hadede napisał:
    Jak to zawsze w trakcie coś wyniknie i wychodzi na to że podział godz przy normatywie na umowę o pracę będzie inny niż na zlecenie(wynika to z tego że jest podział na dwie firmy).

    W tym momencie zastanowiłbym się nad sensem łączenia rozwiązań.

    0
  • #12 02 Mar 2017 19:56
    hadede
    Poziom 5  

    marek003 napisał:
    hadede napisał:
    Jak to zawsze w trakcie coś wyniknie i wychodzi na to że podział godz przy normatywie na umowę o pracę będzie inny niż na zlecenie(wynika to z tego że jest podział na dwie firmy).

    W tym momencie zastanowiłbym się nad sensem łączenia rozwiązań.

    Myślałem żeby wpisywąć w grafiku normatywy pod koniec każdego wiersza .
    Muszę tylko rozszyfrować najpierw tą formułę :P
    =JEŻELI(SUMA($G$4:G4)+ADR.POŚR("grafik!"&ADRES($J$3;WIERSZ()))>$D$37;JEŻELI(SUMA($G$4:G4)<$D$37;$D$37-SUMA($G$4:G4);"");ADR.POŚR("grafik!"&ADRES($J$3;WIERSZ())))

    0
  • Pomocny post
    #13 03 Mar 2017 09:47
    marek003
    Poziom 40  

    hadede napisał:
    Muszę tylko rozszyfrować najpierw tą formułę
    =JEŻELI(SUMA($G$4:G4)+ADR.POŚR("grafik!"&ADRES($J$3;WIERSZ()))>$D$37;JEŻELI(SUMA($G$4:G4)<$D$37;$D$37-SUMA($G$4:G4);"");ADR.POŚR("grafik!"&ADRES($J$3;WIERSZ())))


    W załączeniu masz przykład tej samej funkcji ale bez szukania danych w innym arkuszy (tak jakbyśmy mieli stałe dane bazowe i nie trzeba by było ich szukać).
    Spójrz na funkcję w żółtej komórce bo ją na początku się tworzy a potem kopiuje w dół. Dlatego że w każdej kolejnej zakres sumy jest inny gdyż sprawdzamy ile już mamy godzin.
    Dolary są po to by podczas kopiowania nie zmieniał się adres danej komórki.

    0