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.

Excel- Szychtownica: nowy projekt

JaroFon 15 Sty 2012 11:05 9106 52
  • #1 15 Sty 2012 11:05
    JaroFon
    Poziom 23  

    Witam. Od dawna korzystam z szychtownicy która bardzo ułatwia mi pracę. Jednak postanowiłem trochę ją przerobić i bardziej udoskonalić. Dlatego bardzo prosiłbym o pomoc bo nie ze wszystkim mogę sobie poradzić. Dołączony plik zawiera pięć różnych szychtownic (do tej pory wszystkie pięć było w jednym arkuszu) teraz je rozdzieliłem i nie wiem jak przerobić część poniższego kodu który kopiuje do szychtownic "Wzór systemu" pracowników. Otóż kod w tej postaci kopiuje wzór z arkusza w którym akurat się znajduje a w nowej wersji szychtownicy "Wzór systemu" umieścilem w dwóch osobnych arkuszach o nazwie "Grafik1" i "Grafik2". Proszę pomóżcie mi jak przerobić poniższy kod tak żeby korzystał ze wzoru który jest umieszczony w osobnym arkuszu. Docelowo chcę uzyskać że szychtownice 1-4 mają korzystać ze wzoru umieszczonym w arkuszu "Grafik1" a szychtownica 5 ma korzystać ze wzoru umieszczony w arkuszu "Grafik2" Dołączam również plik z moim projektem szychtownicy

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0 29
  • Pomocny post
    #2 15 Sty 2012 14:21
    adamas_nt
    Moderator Programowanie

    JaroFon napisał:
    Przy okazji chciałbym zaznaczyć że kody które zawiera szychtownica pomógł mi napisać wspanialy user adamas_nt
    Taa, no to niech teraz, mądrala, pogłówkuje :)

    Hmm, niech będzie, znam sprawę to trochę podpowiem.
    Skopiowałeś arkusz "jak leci" i teraz masz mnóstwo kodu w każdym arkuszu. Poza tym copy-paste kiepsko wychodzi z poziomu procedury zdarzeniowej arkusza.
    Po mojemu: Procedury (przynajmniej te najdłuższe) przenieść do modułu i wywoływać z parametrami.
    W przykładzie "posprzątałem" trochę w arkuszu "Szychtownica1" (procedura zdarzeniowa i dwa przyciski). Wg tego schematu możesz zrobić porządek w pozostałych...

    0
  • #3 15 Sty 2012 14:25
    walek33
    Poziom 28  

    Cytat:
    pomógł mi napisać wspanialy user adamas_nt

    Nic dodać nic ująć, a spróbowałbyś po takim słodzeniu nie pomóc. :D

    0
  • #4 15 Sty 2012 14:40
    adamas_nt
    Moderator Programowanie

    Jednak to miłe. Dziękuję...
    Gdyby tak chociaż raz usłyszeć coś takiego od teściowej...

    0
  • #5 15 Sty 2012 14:47
    walek33
    Poziom 28  

    Czy Ty aby nie za dużo...
    :D

    0
  • #6 15 Sty 2012 14:49
    JaroFon
    Poziom 23  

    Ok. Dzięki wielkie teraz kopiowanie jest tak jak chciałem jednak z kodu usunąłeś wklejanie formatów które są mi potrzebne, ale spróbuję to jakoś posklejać. A o jakie dwa przyciski chodzi bo nie widzę żadnych dodatkowych przycisków w arkuszu Szychtownica1?

    0
  • #7 15 Sty 2012 14:54
    adamas_nt
    Moderator Programowanie

    O te, których kodu szukasz (CommandButton5 i CommandButton6) :) Zerknij do modułu "Procedury"...

    0
  • #8 15 Sty 2012 16:56
    JaroFon
    Poziom 23  

    Ach już widzę. Nie zauważyłem że część kodu przeniosłeś do procedur. Jak na razie to wszystko świetnie śmiga :) Mam kolejne pewnie dla Was banalne pytanie ale ja nie wiem jak to zrobić. jak dodać do kodu przycisku żeby po powrocie do arkusza "Menu" została zaznaczona np. komórka A1. Zrobiłem coś takiego jak poniżej ale to nie działa.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #9 15 Sty 2012 17:03
    walek33
    Poziom 28  

    A coś w okolicy activate?

    0
  • #11 15 Sty 2012 18:09
    walek33
    Poziom 28  

    A tak na próbę zastąp sobie to:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    tym:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #12 15 Sty 2012 18:20
    JaroFon
    Poziom 23  

    No tak ale chyba nie bardzo mnie zrozumiałeś a może ja źle wyjaśniłem. Jeśli chodzi o tą część:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    ...to działa poprawnie bo po kliknięciu na przycisk przenosi mnie do arkusza "Menu" ale chodzi mi o drugą część kodu:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Ja chcę żeby po przeniesieniu do Arkusza "Menu" zaznaczyło mi komórkę A1 ale wyskakuje mi błąd jak na screenie
    Excel- Szychtownica: nowy projekt

    0
  • #13 15 Sty 2012 18:28
    walek33
    Poziom 28  

    A jaki przed tym wyskakuje komunikat?

    0
  • #15 15 Sty 2012 18:51
    walek33
    Poziom 28  

    Uczepię się swojego jak pijany płota. :D
    Próbowałeś z activate?

    0
  • #17 15 Sty 2012 19:02
    walek33
    Poziom 28  

    Ale activate tylko przy sheets.

    0
  • Pomocny post
    #19 15 Sty 2012 19:13
    adamas_nt
    Moderator Programowanie

    To ten sam problem, co w przypadku copy-paste. Jesteś w kodzie arkusza i musisz kod przenieść do modułu, lub w tym przypadku co najmniej podawać nazwę obiektu nadrzędnego Range, Cells, Shapes, itp

    Code:
    Sheets("Menu").Select
    
    Sheets("Menu").Range("A1").Select

    0
  • #20 15 Sty 2012 19:19
    walek33
    Poziom 28  

    Nie mam pod ręką Excela a w OO tego nie sprawdzę, ale...
    arkusz Menu nie jest czasem zablokowany? (to tak z pamięci)
    A gdy wstawisz przed range activesheet masz ten sam problem?
    Edit
    I znowu był szybszy. :D

    0
  • #21 15 Sty 2012 19:22
    adamas_nt
    Moderator Programowanie

    Ja to widzę tak. Procedura w module:
    Excel- Szychtownica: nowy projekt

    a w kodzie przycisku (bez względu na arkusz) tylko wywołanie:
    Excel- Szychtownica: nowy projekt

    0
  • #22 15 Sty 2012 19:24
    JaroFon
    Poziom 23  

    Dzięki bardzo o to właśnie chodziło. Mam kolejny problem związany z opcją drukowania. Ogólnie to sama opcja drukowania to żaden problem, jednak nie wiem jak to zrobić z poziomu Arkusza "Menu". Zrobiłem dodatkowe przyciski tak żeby po zaznaczeniu wszystkich lub wybranych jednym kliknięciem posłać do wydruku. Dołączam poprawiony nowy plik

    0
  • Pomocny post
    #23 15 Sty 2012 19:48
    adamas_nt
    Moderator Programowanie

    Tu również j/w. W module Np

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    gdzie w arkuszu "Menu" nazwy:
    Excel- Szychtownica: nowy projekt

    a w kodzie przycisku
    Code:
    Call Druknij

    0
  • #24 15 Sty 2012 20:44
    JaroFon
    Poziom 23  

    Dzięki wielkie. Teraz drukowanie jest już funkcjonalne. Na dziś zadam jeszcze dwa pytanka i dam se już spokój bo rano wczas trzeba wstać do roboty. Czy w sposób jaki zrobiłem zaznaczanie i odznaczanie wydruków da rady wykorzystać dodatkowy przycisk do zaznaczania i odznaczania jednocześnie wszystkich szychtownic tak żeby działało? Bo za nic nie mogę wymyślić jak to zrobić żeby działało. I jeszcze jedno. Dodałem dodatkowy przycisk do podglądu wydruku. Jakim kodem wywołam podgląd wszystkich zaznaczonych szychtownic do wydruku?

    Dodano po 25 [minuty]:

    Zrobiłem coś takiego:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Prawidłowo wyskakuje mi informacja o niezaznaczonych szychtownicach ale nie wiem co wpisać w linijce gdzie jest wpis:
    ActiveWindow.SelectedSheets.PrintPreview
    ... bo ten wpis podgląda aktywny arkusz a nie zaznaczone szychtownice.

    0
  • Pomocny post
    #25 15 Sty 2012 21:06
    adamas_nt
    Moderator Programowanie

    ActiveWindow to arkusz "Menu", bo w nim klikasz przyciski... Zobacz makro "Druknij"

    Zaznaczanie wszystkich:
    Łącze komórki to N6 w arkuszu "Admin". Podepnij makro pod pole wyboru "zaznacz wszystkie"

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    W zależności od wartości stanu pola zmieniasz wartości łącz (N1:N5), a tym samym pól w arkuszu.

    0
  • #26 15 Sty 2012 21:52
    JaroFon
    Poziom 23  

    Dzięki bardzo, działa wyśmienicie. Teraz pokombinuję jeszcze z tym podglądem

    Dodano po 32 [minuty]:

    Przyznam że nie mam pojęcia jak zrobić ten podgląd, utknąłem w miejscu. Zrobiłem coś takiego:
    W arkuszu "Admin" w kolumnie "P" dałem takie formuły"
    =JEŻELI(N1=PRAWDA;Menu!C10;"") i tak dalej do pięciu szychtownic.
    I teraz nazwy szychtownic które zaznaczę pojawią się w tych komórkach. Nazwałem te 5 komórek "zakres7" i na podstawie tego zakresu chciałbym żeby podglądać te szychtownice które zaznaczę ale nie mam pojęcia jak ten zakres wykorzystać w kodzie podglądu
    Excel- Szychtownica: nowy projekt

    0
  • #27 15 Sty 2012 22:34
    adamas_nt
    Moderator Programowanie

    Komórki z nazwami nie muszą być warunkowe. Wystarczy =Menu!C10, =Menu!C12, itd. lub wpisz "z palca". Nazwę zakresu też już masz. Skopiuj makro "Druknij" i zmień:

    .PrintOut Copies:=1
    na
    .PrintPreview

    Dla przykładu najpierw podmień sobie w "Druknij" i zobacz efekt.

    0
  • #29 16 Sty 2012 19:38
    JaroFon
    Poziom 23  

    Witam ponownie.
    Właśnie borykam się z jedną opcją ale niestety nie mam pojęcia czy jest w ogóle taka możliwość.
    Czy jest możliwość żeby przy wydruku na wolnej części papieru skopiowało się to co ma się wydrukować? tz. żeby wypełniło cały papier tym samym wydrukiem. Pokazałem to na screenie. Dołączam poprawiony plik z "Szychtownicą". W pliku chcę uzyskać coś takiego w "Grafik1", jak kliknę na podgląd to chciałbym aby cały papier został wypełniony tym samym wydrukiem
    Excel- Szychtownica: nowy projekt

    0
  • #30 16 Sty 2012 22:09
    adamas_nt
    Moderator Programowanie

    Hmm, spróbowałbym z jakimś arkuszem tymczasowym. Kopiujesz do niego tabelkę, sprawdzasz ile zostało wierszy do końca strony i jeśli wystarczająco, kopiujesz pod spód. I tak dalej aż ilość_wierszy_tabelki>pustych_w_arkuszu. Drukujesz tymczasowy i na końcu go usuwasz.

    0