Discussion:
Excel+VBA wywołanie procedur z innego skoroszytu
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
pl.rec.windsurfing.
2006-09-18 15:29:51 UTC
Permalink
Witam!
Nie wiem jak wywołać procedurę (funkcję) z innego skoroszytu.
Problem polega na tym, że mam kilka skoroszytów z tymi samymi makrami i jest
ok dopóki nie potrzebuję dokonać zmian w kodzie, więc po koleji zmieniam we
wszystkich. Już zdażały mi się drobne wpadki, a skoroszytów ma być docelowo
kilka razy więcej. Więc wykombinowałem, że jeden będzie miał makra a inne
będą z niego korzystać.

pozdro
Romek
Piotr Lipski
2006-09-18 16:17:56 UTC
Permalink
Post by pl.rec.windsurfing.
Witam!
Nie wiem jak wywołać procedurę (funkcję) z innego skoroszytu.
Problem polega na tym, że mam kilka skoroszytów z tymi samymi makrami i jest
ok dopóki nie potrzebuję dokonać zmian w kodzie, więc po koleji zmieniam we
wszystkich. Już zdażały mi się drobne wpadki, a skoroszytów ma być docelowo
kilka razy więcej. Więc wykombinowałem, że jeden będzie miał makra a inne
będą z niego korzystać.
Zapisujesz plik xls ze swoim "wspólnym" kodem VBA gdzieś na dysku, a potem
we wszystkich dokumentach, w których chcesz z tego kodu korzystać, dodajesz
ten plik jako referencję (tools => references => browse...)

Pamiętaj, żeby ten "wpólny" xls miał jakąś unikalną nazwę projektu VBA
(ustawiasz to we właściwościach projektu). W przeciwnym razie przy
podłączaniu go jako referencji dostaniesz komunikat o konflikcie nazw.

P.S.
"po kolei", "zdarzały". Jeżeli masz kłopoty z ortografią, zainstaluj sobie
spellcheckera.
--
PL
romek
2006-09-20 05:10:11 UTC
Permalink
Post by Piotr Lipski
P.S.
"po kolei", "zdarzały". Jeżeli masz kłopoty z ortografią, zainstaluj sobie
spellcheckera.
Faktycznie już coś nie tak ze mną. Kiedyś nie miałem żadnych problemów z
ortografią. Od kiedy korzystam z internetu to jest coraz gorzej.
Dzięki za odpowiedź i wszelkie sugestie.

Romek
Tajan
2006-09-18 17:35:55 UTC
Permalink
Witam!
Post by pl.rec.windsurfing.
Witam!
Nie wiem jak wywołać procedurę (funkcję) z innego skoroszytu.
Problem polega na tym, że mam kilka skoroszytów z tymi samymi makrami
i jest ok dopóki nie potrzebuję dokonać zmian w kodzie, więc po
koleji zmieniam we wszystkich. Już zdażały mi się drobne wpadki, a
skoroszytów ma być docelowo kilka razy więcej. Więc wykombinowałem,
że jeden będzie miał makra a inne będą z niego korzystać.
Plik, w którym umieścisz makra zapisz jako dodatek (menu "Zapisz jako..." i
typ pliku "Dodatek programu Microsoft Excel"). Następnie, za pomoca menu
Narzędzia/Dodatki, dołacz go do listy aktywnych dodatków. Od tego momentu,
po uruchomieniu Excela, makra zawarte w pliku będą dostępne dla wszystkich
otwieranych skoroszytów.

Tajan
pxd74
2006-09-20 20:47:03 UTC
Permalink
Post by pl.rec.windsurfing.
Witam!
Nie wiem jak wywołać procedurę (funkcję) z innego skoroszytu.
Problem polega na tym, że mam kilka skoroszytów z tymi samymi makrami i
jest ok dopóki nie potrzebuję dokonać zmian w kodzie, więc po koleji
zmieniam we wszystkich. Już zdażały mi się drobne wpadki, a skoroszytów
ma być docelowo kilka razy więcej. Więc wykombinowałem, że jeden będzie
miał makra a inne będą z niego korzystać.
Oprócz mozliwości jakie opisali koledzy istnieje jeszcze trzecia możliwość:
skopiowanie skoroszytu do folderu XLStart. spwoduje to otwarcie tego pliku
przy kazdym uruchoamieniu Excela. Jeśli nie chcesz, aby okno tego pliku było
pokazywane wybierz polecenie menu Okno -> Ukryj i przy zamykaniu aplikacji
zapisz zmiany w pliku. Przykładem takieg pliku jest skoroszyt makr
osobistych (Personal.xls) tworzący się czasami przy rejstrowaniu makr.


--
Pozdrowienia
pxd74

Loading...