Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Excel Przypisanie wartości komórkom bez wypełnienia LISTA OBECNOŚCI-KARTY PRACY

tomash89i 04 Sep 2013 11:42 7332 5
  • #1
    tomash89i
    Level 2  
    Witam Wszystkich

    Jestem zdecydowanym początkującym jeżeli chodzi o makra w MS Excel.
    Prosiłbym o pomoc zaawansowanych osób w takiej sprawie.

    W załączeniu przesyłam plik w excel: ZAKŁADKA /LISTA PRACOWNIKÓW/

    Wszystko działa automatycznie - wybieramy miesiąc , rok i sam program wypełnia kolorem odpowiednie kolumny z sobota i niedziela. Chciałbym aby program automatycznie wypełnił mi wartością = 8 wszystkie pola bez wypełnienia w obszarze kalendarzowym. Czyli aby każdemu pracownikowi automatycznie przypisał 8 godzin pracy w każdym dniu roboczym. ALE tak abym mógł w to ingerować, Czyli potem nanieść sobie w poszczególnych dniach UW, chorobowe, przepustki itp. A tak przy okazji program co prawda dopiero tworze ale już teraz może być komuś innemu przydatny. Potem chcę połączyć zakładkę LISTA OBECNOŚCI z Karty PRacy - tak aby atomatycznie nanosił mi dane z listy i zliczał wszystko razem.

    Proszę o ciekawe propozycjie

    Pozdrawiam
    Tomek
  • Helpful post
    #2
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Co Pan chce mieć wpisane w kolumnach? 8 (jako liczbę) czy 8 godzin (w formacie czasu Excela). Tu jakby brak konsekwencji. Komórki w kolumnach dni są sformatowane jako liczby całkowite, a kolumna podsumowania (AI) jest sformatowana jako godziny i minuty gg:mm. To nie pasuje i nic się Panu nie będzie sumować. W arkuszu są jeszcze różne inne nieścisłości do poprawienia.
  • #3
    tomash89i
    Level 2  
    Z całym szacunkiem ale nie prosiłem o sprawdzanie poprawności formatowania mojego arkusza, dość dobrze sobie z tym radze i to jest na razie tylko wersja robocza gdzie co dzień poprawiam co innego.

    Powyższe pytanie proszę potraktować jako nieaktualne - poradziłem sobie w inny sposób bez makra.

    TERAZ PROSZĘ O POMOC W UŁOŻENIU INNEGO MAKRA - a mianowicie:

    Jeżeli komórka jest wypełniona kolorem - wyczyść z niej dane (pozostaw pustą)

    Ważne aby funkcja działała automatycznie po zmianie miesiąca.

    Kolor wypełnienia nie ważne jaki - ważne aby pozostawiał w spokoju tylko komórki bez wypełnienia. a te wypełnione czyścił

    Proszę o pomoc

    W ZAŁĄCZENIU AKTUALNY PLIK
  • Helpful post
    #4
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Wydaje mi się, że niepotrzebnie się Pan obraża, bo moje pytanie chyba jednak było zasadne - w nowej wersji usunął Pan to godzinowe formatowanie i teraz wiadomo, że chodziło Panu o liczby całkowite. Lepiej wyjaśnić wątpliwości zawczasu aniżeli zrobić coś nie tak i później poprawiać.
    Pana problem wcale nie jest banalny i pewnie dlatego nikt się specjalnie nie palił z szybką odpowiedzią. Na tyle na ile znam Visual Basic (ale jest wielu lepszych specjalistów w tym zakresie - może się odezwą), to nie da się w prosty sposób sprawdzić koloru komórki po zastosowaniu formatowania warunkowego. Trzeba wrócić do początku i sprawdzać jeszcze raz spełnienie warunków w kodzie VBA, a tu jeszcze te warunki zawierają polskie nazwy funkcji, co jest dodatkowym utrudnieniem.
    Dlatego wydaje mi się, że droga do rozwiązania powinna być inna. Proponuję w arkuszu utworzyć formuły sprawdzające spełnienie któregokolwiek z warunków formatowania. W wyniku otrzymamy 0 gdy warunki formatowania dla kolumny nie są spełnione lub 1 gdy którykolwiek z warunków jest spełniony. Wyniki są umieszczone na tabelką w wierszu 6. Formuły są niewidoczne, żeby nie psuły wyglądu arkusza, ale nie można ich usuwać. Mając już te wartości, łatwo napisać makro np. usuwające zawartość komórek sformatowanych warunkowo. Uruchamia się je przyciskiem Wyczyść. Działanie makra jest nieodwracalne.
    Nie wiem co Pan miał na myśli pisząc, że funkcja ma działać automatycznie po zmianie miesiąca. Oczywiście makro usunie dane z kolumn spełniających kryteria w momencie wywołania. Ale jeśli później zmieni Pan miesiąc, to komórki z których wcześniej usunięto dane nie zostaną przywrócone automatycznie. Trzeba wypełnić tabelkę na nowo i ponownie użyć makra.
    Czy o to chodziło?
    Życzę owocnej dalszej pracy.
  • #5
    tomash89i
    Level 2  
    No teraz już widze, że nie będzie to takie proste.

    Makro czyści odpowiednie komórki - działa tak jak to sobie wymyśliłem i poprosiłem.

    Jednak nie przewidziałem podstawowej rzeczy. wszystkie komórki w obszarze miesiąca mają przypisaną funkcje jeżeli, jeśli makro czysci komórki zaznaczone kolorem czyści również z danej komórki funkcje. Potem po zmienie miesiąca na następny czysci odpowiednie zaznaczone kolumny a tamte pozostają również wyczyśczone. i już nie działa wtedy moja lista automatycznie bo musiałbym wpisywać w wyczyszczone pola funkcje jeżeli od nowa. Moze i nie jest to takie uciążliwe ale musze pomyśleć zeby działało to automatycznie.

    W każdym razie serdecznie dziękuje za pomoc i wskazówki.
    A jeśli moglby mi Pan polecić jakiąś literature, jakieś skrypty z których korzystacie przy pisaniu makr. Bardzo chciałbym pojąć chociaż trochę tą wiedzę.

    Tak sobie myślę, że może lepiej by było gdybym wszystkie funkcje jeżeli zastosował jako makra. Bo teraz również mam problem ze swykłą funkcją SUMA w komórce o tej samej nazwie. Funkcja SUMA powinna mi zliczać tylko liczby z kalendarza danej osoby a pomijać inne pola tekstowe ale wcale niedziała. Nie zlicza nic wpisując wynik "0". Ręczne sumowanie komórek też niezda egzaminu bo są w komórkach teksty.

    Chyba za wysoko sobie poprzeczkę ustawiłem. Może się okazać ze bardziej przydatnym do tego celu były program Acces o którym jednak nie wiem kompletnie nic. W każdym razie zdobyta wiedza zawsze się przyda.

    Pozdrawiam
  • Helpful post
    #6
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Excel nie jest dobry na wszystko, ale w tym przypadku powinien sobie poradzić. Nie znam Accessa, więc nie potrafię ocenić, czy byłby lepszy.
    Co do podręczników do Excela i VBA jest ich całe mnóstwo, wszystko zależy co kto lubi i jak szczegółowa wiedza jest mu potrzebna. Cenione są prace Walkenbacha, ale to są dość grube tomy i potrzeba do nich cierpliwości. Dużo różnych przydatnych kursów można znaleźć w Internecie, mnie najłatwiej polecić moje własne dzieło pt. Excel w obliczeniach naukowych i inżynierskich. Jest ono co prawda ukierunkowane tematycznie, ale jest tam też sporo informacji ogólnych przydatnych nie tylko do obliczeń naukowych.
    Co do problemów, które Pan sygnalizuje, to funkcja SUMA nie działa Panu, bo komórki z liczbami ma Pan sformatowane jako tekst, a funkcja SUMA zlicza tylko "prawdziwe" liczby.
    Z ponownym wprowadzeniem formuł też nie powinno być problemu, bo to jest de facto taka sama formuła dla całej tabelki, wystarczy, że przechowa Pan sobie gdzieś tę formułę poza tabelką (w wersji dla lewego górnego rogu tabelki), a potem gdy przyjdzie potrzeba zaznaczy fragment lub całą tabelkę (począwszy od lewego górnego rogu), wklei formułę do linii edycji i naciśnie CTRL+Enter. Formuła zostanie wpisana do całego zaznaczonego zakresu. Można oczywiście napisać też makro, które to zrobi.