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.

Korespondencja seryjna uruchamiana z Excela

etiene8912 26 Lut 2014 11:34 12366 22
  • #1 26 Lut 2014 11:34
    etiene8912
    Poziom 11  

    W mojej codziennej pracy wystawiam karty urlopowe kierowcom, druk w załączniku.
    Dane do nich mam w formie tabeli (wszystkie pola które trzeba uzupełnić)

    Czy da się uruchomić korespondencję seryjną bezpośrednio z Excela ?
    Chciałbym aby w mojej Excelowskiej tabeli pojawił sie przycisk "Generuj karty", i aby na jego podstawie generowały się karty dla określonego tygodnia np 7.

    Chciałbym, też aby każda z tych kart zapisywała się do osobnego pliku, i aby w jego nazwie pojawiały się dane pobrane z tabeli, tzn -> karta jaka się wygenerowała ma w nazwie

    nazwisko_miejsce_dzien_tydzien

    0 22
  • #2 26 Lut 2014 12:18
    mickpr
    Poziom 39  

    etiene8912 napisał:
    Czy da się uruchomić korespondencję seryjną bezpośrednio z Excela ?
    Możesz w VBA z poziomu Excel'a wywołać Word'a i użyć go do wygenerowania pożądanych dokumentów z udziałem korespondencji seryjnej - tyle że to takie "sięganie do lewej kieszeni prawą ręką". Więcej roboty - niż to warte.
    Jeśli dokumenty mają być tylko drukowane, i nie potrzebujesz plików word'a - najprościej stwórz sobie bazę (Access) korzystającą z tej tabeli (Excel) jeśli oczywiście w nim prowadzisz jakąś ewidencję - i generującą raporty.

    0
  • #3 26 Lut 2014 13:39
    etiene8912
    Poziom 11  

    POtrzebuję plików WORDA, i nie wiem jak uruchomić z poziomu Excela korespondencję seryjną

    0
  • #5 26 Lut 2014 16:03
    etiene8912
    Poziom 11  

    więc jakie jest dobre ?

    0
  • #6 26 Lut 2014 16:11
    mickpr
    Poziom 39  

    Wytłumaczę to w inny sposób.
    Dlaczego nie możesz po prostu otworzyć dokumentu Word'a (dokumenu korespondencji seryjnej) i nawet zdefiniować sobie w nim jakieś makro (+nawet formularz i przycisk), które ci z drugiego pliku (dokumentu excel'a) wygeneruje automatycznie dokumenty wyjściowe?

    W Excel'u musiałbyś (z kodu VBA):
    1. Uruchomić Word'a
    2. Wczytać szablon korespondencji
    3. wygenerować dokumenty
    4. zamknąć word
    Dlatego napisałem, że to takie sięganie lewą ręką do prawej kieszeni.
    Nie możesz całości wykonać z Word'a?

    0
  • #7 26 Lut 2014 16:13
    etiene8912
    Poziom 11  

    nie do końca rozumiem to zdanie

    Dlaczego nie możesz po prostu otworzyć dokumentu Word'a (dokumenu korespondencji seryjnej) i nawet zdefiniować sobie w nim jakieś makro (+nawet formularz i przycisk), które ci z drugiego pliku (dokumentu excel'a) wygeneruje automatycznie dokumenty wyjściowe?

    jak zdefiniować formularz ? może jakiś przykład ?

    0
  • #8 26 Lut 2014 17:07
    mickpr
    Poziom 39  

    etiene8912 napisał:
    jak zdefiniować formularz ? może jakiś przykład ?
    Zostańmy na razie przy przycisku (który może mieć przypisane makro, a makro - to nic innego niż kod VBA).

    Zakładam, że masz dokument korespondencji seryjnej, otworzyłeś go, wybrałeś źródło rekordów.
    Stwórz i uruchom sobie makro z następującym kodem:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Spowoduje to wygenerowanie dokumentu z korespondencji seryjnej

    A jak wygenerujesz sobie plik z wieloma stronami/raportami to tutaj masz (nie mój) drugi skrypt dzielący go na odrębne dokumenty:
    (źródło: http://answers.microsoft.com/en-us/office/for...ocuments/898e11ce-5d81-4ca1-a2a2-8ee86f5273b2 )
    Obydwa makra (albo jedno więlsze) powinny(o) być uruchamiane z dokumentu korespondencji seryjnej.
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Wygenerowane dokumenty lądują domyślnie w "moje dokumenty".
    Oczywiście w miejsce WRITE NAME OF SOURCE DOCUMENT wpisz nazwę dokumentu (będą numerowane xxx1, xxx2.... itd.)

    0
  • #9 26 Lut 2014 18:52
    JRV
    Specjalista - VBA, Excel

    Witam
    To wszystko zależy, w programu Excel lub Word jest więcej praktyki. Pracuję z Excel, ponieważ w takich przypadkach wymagane tabeli (z tytułów) zapiszem w pliku tekstowym. Po wykonaniu korespondencji seryjnej z tego pliku po prostu z Excel: napisać nowe dane w pliku, wywołanie Word i dać mu polecenia Otwórz dokument(korespondencji seryjnej ).

    0
  • #10 28 Lut 2014 19:37
    czeles
    Poziom 16  

    Rozumiem intencję etiene8912. Niefortunnie użyty jest termin korespondencja seryjna, bo nie tu leży rozwiązanie problemu drukowania kart dla kierowców. Po wpisaniu wszystkich danych do tabeli w Excelu, wygenerować się mają załączniki wg wzoru attestation_of_activities_pl.doc dla każdego kierowcy.
    Próbowałem pisać makro w Excelu, które kopiuje plik attestation_of_activities_pl.doc i nadaje mu nazwę Kierowca+dzień i po otwarciu pliku przepisuje dane z komórek tabeli do pól formularza w Wordzie.
    W Microsoft Script Editor zmieniłem hasło zabezpieczające zmiany w formularzu na:"00000000".
    Fragment dotyczący zapisu do Worda wyglądałby tak:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Doszedłem i tego miejsca i zwątpiłem. Mickpr ma rację: takie rozwiązanie jest skomplikowane. Najprościej jest zrobić w Excelu arkusz wyglądający identycznie jak wzór druku i do pól tego arkusza wpisywać odpowiednie dane i drukować (za pomocą makro).

    0
  • #11 28 Lut 2014 19:44
    etiene8912
    Poziom 11  

    Nie wiem jak zrobić taki sam arkusz w Excelu, myślałem już o tym, ale nie da się go tak prosto skopiować, - wszystkie akapity, marginesy, pola stron muszą być takie same, nie może się on różnić absolutnie o milimetr - gdyby udało mi się go przenieść do excela z edytowalnymi polami - poradzę sobie z uzupełnianiem danych ;)

    0
  • #12 28 Lut 2014 20:10
    mickpr
    Poziom 39  

    etiene8912 napisał:
    nie wiem jak zrobić taki sam arkusz w Excelu, myślałem już o tym, ale nie da się go tak prosto skopiować, - wszystkie akapity, marginesy, pola stron muszą być takie same, nie może się on różnić absolutnie o milimetr - gdyby udało mi się go przenieść do excela z edytowalnymi polami - poradzę sobie z uzupełnianiem danych
    Czyli jednak chodzi o wydruk, tak?
    Zawsze możesz zrobić raport w Access i drukować do PDF-a.
    I tak będzie najprościej.

    A co do tego - czy się da? Kiedyś w Access zrobiłem program do PIT-ów. Był Identyczny jak oryginalny, tyle, że po roku się zdezaktualizował. Więc - SIĘ DA :)

    0
  • #13 28 Lut 2014 20:17
    etiene8912
    Poziom 11  

    Na pewno się da, ale nie wiem jak to zrobić - to co umiem, nie daje takiego rezultatu jaki chcę, oczekuję pomocy - i innych możliwych rozwiązań tego problemu

    0
  • #14 28 Lut 2014 22:46
    adamas_nt
    Moderator Programowanie

    etiene8912 napisał:
    nie może się on różnić absolutnie o milimetr
    Nie przesadzaj. Kilku zaprzyjaźnionych transportowców wystawia zaświadczenia, które zrobiłem w... Excelu (bo tak, moim zdaniem, najwygodniej) i z żadnym BAG, czy ITD nie było jeszcze problemu.
    Korespondencja seryjna uruchamiana z Excela     Korespondencja seryjna uruchamiana z Excela

    Wzór jest wzorem, ale to nie banknot. Inny system, zestaw czcionek, drukarka i wynik może być różny. Oczywiście dotyczy formy, nie treści.
    Przykład? Załączony przez Ciebie plik, wygląda u mnie tak:

    Korespondencja seryjna uruchamiana z Excela

    Jeśli to nie będzie powodem do zakwestionowania druku, tym bardziej nie będzie drobna różnica wielkości marginesów, czy odstępu akapitów...

    0
  • #15 01 Mar 2014 14:20
    etiene8912
    Poziom 11  

    Wstawiłeś to zaświadczenie do Excela ? jak ? narysowałeś takie samo ? czy w jakiś sposób skopiowałeś ?

    0
  • #16 01 Mar 2014 16:27
    JRV
    Specjalista - VBA, Excel

    etiene8912 Można nazwać hasło "attestation_of_activities_pl.doc", lub niezabezpieczony załącznik plik Word?

    0
  • #17 01 Mar 2014 17:47
    etiene8912
    Poziom 11  

    Masz na myśli załączenie niezabezpieczonego pliku tak ?

    0
  • #18 01 Mar 2014 17:51
    JRV
    Specjalista - VBA, Excel

    Tak więc, jeśli jest to możliwe

    1
  • #19 01 Mar 2014 18:17
    etiene8912
    Poziom 11  

    Nie bardzo wiem jak odblokować ten plik - pobrałem go ze strony - zaraz spróbuje, go "odbezpieczyć"

    0
  • #20 01 Mar 2014 19:56
    czeles
    Poziom 16  

    Tak jak pisałem wcześniej: z pliku można usunąć hasło w Microsoft Script Editor. Otwieramy attestation_of_activities_pl.doc, menu Narzędzia-Makro-Microsoft Script Editor i znajdujemy linie:

    <w:DocumentProtection>Forms</w:DocumentProtection>
    Jeżeli usuniemy Forms to cały tekst w wordzie będzie do edycji.
    <w:UnprotectPassword>5F23E53C</w:UnprotectPassword> .
    Usuwamy hasło lub wpisujemy 00000000.

    Po usunięciu hasła, odbezpieczanie i ponowne zabezpieczanie formularza tak jak napisałem we wcześniej.

    0
  • #21 01 Mar 2014 20:31
    JRV
    Specjalista - VBA, Excel

    Ogólnie rzecz biorąc w tym przypadku, kiedyś po prostu "SendKeys "

    0
  • #22 01 Mar 2014 20:47
    adamas_nt
    Moderator Programowanie

    etiene8912 napisał:
    wstawiłeś to zaświadczenie do Excela
    Przepisałem do arkusza. Pusta oraz zaznaczona "kratka" na wydruku, to znaki czcionki Wingdings, wstawiane makrem wg wyboru w formularzu.
    etiene8912 napisał:
    Nie bardzo wiem jak odblokować ten plik - pobrałem go ze strony
    Wystarczy pobrać z innej ;)

    0
  • #23 14 Gru 2015 10:25
    bundy81
    Poziom 11  

    adamas_nt napisał:
    etiene8912 napisał:
    nie może się on różnić absolutnie o milimetr
    Nie przesadzaj. Kilku zaprzyjaźnionych transportowców wystawia zaświadczenia, które zrobiłem w... Excelu (bo tak, moim zdaniem, najwygodniej) i z żadnym BAG, czy ITD nie było jeszcze problemu.
    Korespondencja seryjna uruchamiana z Excela     Korespondencja seryjna uruchamiana z Excela

    Wzór jest wzorem, ale to nie banknot. Inny system, zestaw czcionek, drukarka i wynik może być różny. Oczywiście dotyczy formy, nie treści.
    Przykład? Załączony przez Ciebie plik, wygląda u mnie tak:

    Korespondencja seryjna uruchamiana z Excela

    Jeśli to nie będzie powodem do zakwestionowania druku, tym bardziej nie będzie drobna różnica wielkości marginesów, czy odstępu akapitów...


    Witam
    Aby nie zakładać nowego wątku podpinam się tutaj, mam problem z w.w. plikiem. Po pobraniu go ze strony http://ec.europa.eu/transport/modes/road/soci.../form_on_the_attestation_of_activities_pl.doc plika ma problem z wyświetlaniem 2 linijek nr 14 i 17. Po wyłączeniu blokady przed edycją i ponownym jej włączeniu, czcionki w polach tekstowych w których wpisuję dane są dużo większe. Chciałem edytować ten plik i poprawić linijki które mają lustrzane odbicie, ale powstaje potem problem z wielkością czcionek. Czy ktoś może mi przerobić ten plik żeby działał tak samo jak przed edycją ? Dodam że wystarczy na końcu tekstu w pkt. 14 i 17 postawić kursor i wcisnąć Backspace i tekst już jest obrócony prawidłowo.
    Dziękuje za pomoc, walczę już z tym drugi dzień i bez rezultatu.

    0