|
Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych
|
makro data |
Autor |
Wiadomość |
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 6 Grudzień 2011, 09:08 makro data
|
|
|
potrzebuje chociaz jakis pomysl na makro ktore wlaczy sie automatycznie po otwarciu pliku.
dokladniej , to po otwarciu pliku powinna zaktualizowac sie data.
lub jakis inny pomysl jak zamiescic date w cdr, zeby po otwarciu aktualizowala sie z automatu |
|
|
|
|
Martin Nez
Doradca Grafik?
Wersja CorelDRAW: 2019
Pomógł: 14 razy Dołączył: 29 Sty 2011 Posty: 114 Skąd: Czmoń
|
Wysłany: 7 Grudzień 2011, 01:29
|
|
|
Tworzysz sobie dokument z tekstem artystycznym, który ma nazwę "Data" (tekst, nie dokument) i wpisaną w nim starą datą... To tak, żeby nie komplikować wyszukiwania tego, co powinno być zmienione... Otwierasz Edytor makr i w projekcie "Global Macros" rozwijasz "CorelDRAW X5 Objects". W ThisMacroStorage wklejasz kod:
Kod: | Private Sub GlobalMacroStorage_DocumentOpen(ByVal Doc As Document, ByVal FileName As String)
Dim data As Date
data = Date
ActiveLayer.FindShape("Data").Text.Story.Text = data
End Sub |
Zapisujesz Edytor, wyłączasz Corela i uruchamiasz wcześniej utworzony plik.
U mnie działa, więc u Ciebie też powinno jeśli nie zapomniałem o czymś napisać.
MN |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 8 Grudzień 2011, 23:17
|
|
|
Bardzo dobry pomysł, który będzie wywalał błąd w każdym dokumencie w którym nie ma obiektu o nazwie Data :)
Najpierw procedura powinna sprawdzić czy tekst o nazwie Data istnieje i wtedy go zmodyfikować a jak go nie ma zakończyć działanie bez żadnej akcji. |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 9 Grudzień 2011, 22:38
|
|
|
dzieki, poki co podpiolem excela z funkcja dzis...
ale powyzsze rozwiazanie tez potestuje :) |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 10 Grudzień 2011, 08:33
|
|
|
u mnie w x4 działa, ale zapomnialem wspomniec ze w pracy mam 9.0 |
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 3 Luty 2012, 00:06
|
|
|
Dzień dobry Panowie.
Zaciekawił mnie Wasz temat i próbowałem zastosować go u siebie.
Niestety bez powodzenia
Na żółto podkreśla mi tekst "ActiveLayer.FindShape("Data").Text.Story.Text = data"
Czy zechcielibyście mi pomóc?
Pozdrawiam Michał |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 3 Luty 2012, 21:47
|
|
|
zrobiles wszystko jak MartinNez napisał?
jakiego masz corela? |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 4 Luty 2012, 08:47
|
|
|
Na początek wypróbuj czy to polecenie działa w twojej wersji Corela.
Żeby to sprawdzić otwórz nowy dokument, wpisz obojętnie jaki tekst, może być również akapitowy i jakoś go w menedżerze obiektów nazwij, np. datownik (menu Narzędzia->menedżer obiektów, zaznacz napis, kliknij 2x pozycję, która mu odpowiada w menedżerze obiektów i wpisz nazwę, np. datownik. Znaczenie ma wielkość znaków, w makrze musi być dokładnie taka sama nazwa.)
Teraz trzeba utworzyć makro, które posłuży do przetestowania polecenia.
Wciśnij Alt+F11 (uruchamia edytor VBA) i wpisz tekst makra:
Kod: | Sub test()
ActiveLayer.FindShape("datownik").Text.Story.Text = Date
End Sub |
Kliknij gdzieś wewnątrz procedury i uruchom makro
Jak nie wyświetli się komunikat o błędzie, to znaczy że działa
Żeby się utwierdzić w tym przekonaniu sprawdź czy faktycznie tak się stało w oknie CorelDRAW. Jeśli eksperyment przebiegł pomyślnie, to zrób tak jak napisał Martin Nez, żeby to zadziałało przy otwieraniu każdego dokumentu funkcja musi mieć specjalną nazwę i zapisana tam gdzie kolega napisał.
Nie wydaje mi się konieczne deklarowanie zmiennej pod którą podstawia się date a następnie tą zmienną wstawia się do polecenia zmieniającego tekst.
Wystarczy jak wewnątrz procedury będzie:
Kod: | On Error GoTo omin
ActiveLayer.FindShape("datownik").Text.Story.Text = Date
omin: |
Sekwencja:
Kod: | on error goto etykieta
...
etykieta:
| powinna uchronić przed błędem wykonania w przypadku braku w dokumencie, na aktywnej warstwie napisu o nazwie użytej w kodzie. |
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 6 Luty 2012, 00:17
|
|
|
Cześć Panowie.
Pokombinowałem i zadziałało u mnie w Corelu X4 w momencie jak zamieniłem nazwę elementu na datownik (przykład w załączniku pdf).
W innym przypadku nie wprowadzało zmiany daty.
Bardzo dziękuję Wam za Fachową Pomoc.
Pozdrawiam michal.s
ps. Może wiecie, czy jest możliwość zaciągnięcia do Corela innych danych tekstowych z innego pliku np pdf? Chodzi mi o uzupełnienie tabeli o nazwę, rozmiar itp? Codziennie muszę uzupełniać tabelkę po kilka razy i raz, że jest monotonne, a dwa łatwo się pomylić
I jeszcze jedno, jak wstawiś do Postu zrzut ekranu?
Ot takie banalne pytanie
Rysunek2.pdf
|
Pobierz Plik ściągnięto 473 raz(y) 724.23 KB |
|
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 6 Luty 2012, 08:56
|
|
|
Zadziałało bo albo nie nazwałeś albo nazwałeś źle tekst w Corelu. To może być dowolna nazwa. Do Corela można wstawić pdfa, można też, ponieważ jest wyposażony w mechanizm OLE wstawić dokument Worda czy Excela. Taki powiązany z elementem zewnętrznym dokument Corela będzie się zmieniał razem ze zmianami oryginału.
Żeby wstawić obrazek w tekst postu należy umieścić go w dowolnym miejscu w sieci, ale takim który pozwala na jego wyświetlanie. Jak go gdzieś widzisz, to wystarczy skopiować jego internetowy adres i wstawić w znaczniki IMG.
Np. tak .
To obrazek z nagłówka tej strony. Koledzy używają różnych serwisów do przechowywania plików, ja voila.pl |
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 6 Luty 2012, 17:58
|
|
|
Sprawdziłem wszystko co mogłem.
Niestety, cały czas pojawia się błąd, jak w załączniku.
Rzućcie swoim fachowym okiem, co mogę robić źle.
Dołączyłem także plik cdr wraz z makrem, tak na wszelki wypadek, bo może w nim tkwi przyczyna.
Jeszcze jedno, na innym komputerze plik otwiera się bez komunikatu, lecz nie wprowadza daty.
blad.pdf
|
Pobierz Plik ściągnięto 522 raz(y) 56.57 KB |
RAMKA BGM_2,84_1.cdr
|
Pobierz Plik ściągnięto 776 raz(y) 84.18 KB |
|
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 7 Luty 2012, 00:07
|
|
|
Z tego co widzę w pdfie, to zastosowałeś procedurę kolegi Martina Nez i moją nazwę obiektu w dokumencie. W tej procedurze jest moim zdaniem wszystko w porządku choć jak wcześniej napisałem, deklarowanie zmiennej po to żeby jej wartość chwilę potem, jednorazowo wstawić do polecenia zamieniającego tekst jest moim zdaniem zupełnie niepotrzebne. Do cdra się nie mogę odnieść bo jest w wersji, której moje X3 nie otwiera.
Żeby ten wynalazek zadziałał, to muszą być spełnione przynajmniej dwa warunki. W dokumencie musi znaleźć się tekst, ozdobny albo akapitowy, który ma nazwę taką jak użyta w procedurze, w twoim przypadku "datownik". W procedurze musi się nazywać dokładnie tak samo jak w dokumencie. Jeśli w dokumencie jest "datownik" to w procedurze nie może być np. "Datownik", będzie błąd. Drugi warunek jest taki, że obiekt (tekst) w dokumencie musi być umieszczony na aktywnej po otwarciu dokumentu warstwie. Jeśli taki eksperyment spróbujesz przeprowadzić np. umieszczając tekst na 2 stronie dokumentu, to nie zadziała. Ta procedura nie zadziała też prawie na pewno przy próbie "ręcznego" jej uruchomienia, wykonuje się wyłącznie przy otwieraniu dokumentu.
W tym konkretnym przypadku wygląda mi na to, że w twoim dokumencie procedura nie może znaleźć obiektu o nazwie "datownik".
I jeszcze jedno. Umieszczenie takiej procedury w module, który dotyczy wszystkich otwieranych dokumentów i pozbawienie jej obsługi błędów spowoduje, że praktycznie w każdym otwieranym dokumencie obejrzysz okienko z tekstem "error" To nie ma sensu,
Na mój rozum to tyle, niestety moja wiedza na temat pisania makr w Corelu jest żadna.
Jaki jest najszybszy ssak na Ziemi?
Oczywiście gepard, a najszybszy ptak?
Ptak geparda |
|
|
|
|
miszcz301
Profesjonalista
Wersja CorelDRAW: 9
Pomógł: 47 razy Wiek: 38 Dołączył: 14 Kwi 2010 Posty: 457 Skąd: gorzów
|
Wysłany: 7 Luty 2012, 11:36
|
|
|
chezare napisał/a: | Jaki jest najszybszy ssak na Ziemi?
Oczywiście gepard, a najszybszy ptak?
Ptak geparda |
|
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 7 Luty 2012, 13:12
|
|
|
szybka z nich "para" :)
chezare
Nawiązując do nurtującego mnie tematu, załączyłem plik cdr zapisany w X3.
Jak będziesz miał chwilkę zajrzyj do niego proszę.
Według mnie zrobiłem wszystko według uwag na forum i d....
RAMKA_BGM_2,84_1.cdr plik w wersji X3 |
Pobierz Plik ściągnięto 791 raz(y) 74.89 KB |
|
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 8 Luty 2012, 08:38
|
|
|
Michal.s, przeprowadziłem badania na Twoim pliku.
Tak skonstruowany dokument straszy użytkownika wirusami które mogą znajdować się w makrach.
Raz kozie śmierć, włączam.
Dokument się otwiera i nic się nie dzieje, daty nie ma, komunikatu o błędzie też.
Wygląda na to, że wszystko jest dobrze?
Zmodyfikowałem trochę plik przenosząc interesujący nas element na samą górę i odnosząc makro do konkretnego dokumentu. Zapisałem i uruchamiam od nowa. Znowu pyta się czy odblokować makra i po otwarciu wymienia tekst na aktualną datę. Niestety wcześniej pyta się czy przywrócić zapisaną wersję pliku? Żeby sprawdzić efekt trzeba oczywiście na takie pytanie odpowiedzieć negatywnie. Jak już mówiłem nie znam się na makrach VBA w Corelu ale takie rozwiązanie wydaje mi się marnym pomysłem. Może gdyby to makro przypisać do innego zdarzenia, do drukowania albo zapisywania? Może procedurę zapisać w pliku z makrami, który jest dostępny dla wszystkich dokumentów i wyciągnąć skrót żeby jednym kliknięciem ikony wstawić datę? Nie wiem?
W dokumentach Offica jak się raz odpowie, że się nie boimy zawartości makr w dokumencie, to program przyjmuje to do wiadomości i następnym razem już nas nie straszy, tutaj wygląda to inaczej. Ja bym nie chciał mieć dokumentu, który za każdym razem traktuje mnie jak idiotę, który nie wie co robi.
Szaman by się jak nic przydał.
PS
Jeśli interesuje Cię sposób jak jednym kliknięciem wstawić datę, bez uciążliwości o których napisałem wyżej, to chętnie wytłumaczę. Pomysł z automatyką przy otwieraniu dokumentu uważam za zły. Raz zaktualizuje Ci się data a następnym skasują pliki, bo trafisz na wynalazek jakiegoś "dowcipnisia".
RAMKA_BGM_2,84_2.cdr
|
Pobierz Plik ściągnięto 734 raz(y) 70.57 KB |
|
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 9 Luty 2012, 14:33
|
|
|
chezare, do pliku celowo dołączyłem makro, żeby plik był w takiej formie jak u mnie.
Normalnie makra zapisuję w GlobalMacros.
Bardzo dziękuję Tobie za pomoc, mam teraz pewność, że nie popełniłem błędu, ponieważ otwieranie pliku wyglądało u mnie dokładnie tak samo jak u Ciebie. Zastanawiam się tylko dlaczego nie chciała się zaktualizować data i dlaczego wyskakuje komunikat o przywróceniu poprzedniej wersji?
Co do wprowadzania daty, to jeżeli masz wiedzę jak zaktualizować ją w pliku, to chętnie skorzystam.
A może dysponujesz wiedzą, jak uzupełnić pola z tabelki w Corelu danymi z arkusza kalkulacyjnego z Open Offica?
Chodzi mi o tabelkę którą testowałeś. |
|
|
|
|
chezare
Pomógł: 402 razy Dołączył: 24 Gru 2010 Posty: 4551 Skąd: Grodzisk Mazowiecki
|
Wysłany: 9 Luty 2012, 21:45
|
|
|
Pewnie dlatego, że makro zmienia zawartość pliku zanim się na dobre otworzy?
Ten mechanizm, który pozwala uruchomić procedurę przy otwieraniu pliku jest w obecnych czasach dosyć ryzykownym pomysłem, a pozwalanie procedurze na takie zachowanie we wszystkich otwieranych arkuszach to proszenie się o kłopoty. Dostajesz dokument zaopatrzony w procedurę uruchamiającą się przy otwieraniu pliku i masz do wyboru zaryzykować i włączyć makra, albo zrezygnować i drastycznie ograniczyć możliwości dokumentu. Tak źle a tak jeszcze gorzej. Przyznam się, że teraz straciłem już orientację? Chcesz wstawiać dane z OpenOffica do CorelDRAW co jest oczywiście możliwe do wykonania, mało tego dziecinnie proste, a datę która przecież też w takim dokumencie może być chcesz wstawiać makrem i to do tego wyjątkowo niebezpiecznym bo uruchamianym przy starcie? Gdybyś opisał dokładniej o co w tym wszystkim chodzi, to z całą pewnością łatwiej byłoby znaleźć rozwiązanie. |
|
|
|
|
michal.s
Praktyk
Wersja CorelDRAW: x4
Pomógł: 1 raz Dołączył: 01 Lut 2012 Posty: 66 Skąd: Poznań
|
Wysłany: 20 Luty 2012, 22:37
|
|
|
Wiitaj chezare po krótkiej przerwie
Troszkę sie przez ten czas WYBYCZYŁEM i zdrowo poobijałem (pierwsze kroki na nartach )
Ale do rzeczy.
W 100%-tach się z Tobą zgadzam co do dołączania makr do pliku.
Nie jest to dobry pomysł. Masz RACJĘ.
Co do wstawienia danych z OO do Corela, to dużo by trzeba pisać, więc pozwoliłem sobie załączyć dwa pliki. Jeden Ramka BBB 5,0.cdr i drugi BAZA DANYCH.ods.
Dla przykładu w pliku ods (w 5 wierszu) magentą zaznaczyłem pola które ręcznie uzupełniłem w pliku cdr.
I tak do tej pory przygotowywałem, RĘCZNIE (wolno, nudno, monotonnie i DUŻO BŁĘDÓW )
Chodzi mi o to, aby importując do Corela bazową ramkę, teksty na warstwie "do zmiany" zostały zamienione z danymi z pliku BAZA DANYCH z wiersza 9 (komórki jak w przykładzie zaznaczonym magentą), innym razem importując ramkę do innego pliku cdr, teksty podmienione zostały z pliku BAZA DANYCH z wiersza 10 itd.
Każdy wiersz jest osobnym plikiem cdr, np wiersz 5 to plik 11-12-10380.cdr, wiersz 9 to plik 12-01-10493.cdr, wiersz 10 to plik 12-01-10494.cdr itd. i dla tego do każdego pliku cdr trzeba wciągnąć dane z innego wiersza.
BAZA DANYCH.ods.zip
|
Pobierz Plik ściągnięto 445 raz(y) 14.84 KB |
RAMKA BBB_5,00.cdr
|
Pobierz Plik ściągnięto 704 raz(y) 70.13 KB |
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
|
|
|
|
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
| Strona wygenerowana w 0.16 sekundy. Zapytań do SQL: 15 |
|
|