Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 27891 Skopiuj do schowka uruchomienie makra automatycznie po uruchomieniu pliku
Autor Wiadomość
haller 
Starszy Forumowicz


Pomógł: 2 razy
Posty: 55
Wysłany: 2012-02-07, 19:44   uruchomienie makra automatycznie po uruchomieniu pliku

Hej.
Kolejne pytanie na dziś.
Jak automatycznie wywołać makro, dajmy na to z Zeszytu.1.xls z Arkusza1 o nazwie Makro1, ale bez konieczności klikania na arkusz??
ID posta: 147797 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Artik 



Pomógł: 1277 razy
Posty: 3463
Wysłany: 2012-02-07, 20:32   

W module ThisWorkbook (Ten_Skoroszyt) wklej procedurę:
Kod:
Private Sub Workbook_Open()
  Call Arkusz1.Makro1
End Sub
Przy każdym otwarciu skoroszytu uruchomi się makro przechowywane w module arkusza Arkusz1.

Artik
ID posta: 147807 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Raffix 
EXCELent Man



Pomógł: 3 razy
Posty: 115
Wysłany: 2012-02-07, 20:48   

Hmm... nie bardzo wiadomo o co Ci chodzi ponieważ opis w temacie różni się od nazwy tematu.
Jeśli chodzi Ci o to aby jakieś makro uruchamiało się zaraz po otwarciu skoroszytu to poszukaj na forum o metodzie Workbook_Open jest tego mnóstwo! A jeśli chcesz aby makro napisane dla jakiegoś arkusza wykonywało się w innym arkuszu to je po prostu skopiuj do odpowiedniego modułu arkusza. Lub ewentualnie utworz nowy moduł w skoroszycie, tam wklej makro i wtedy kiedy chcesz i w jakim arkuszu chcesz wywołujesz to makro poleceniem Call twoje_makro. Wszystko zależne jest od tego jakie to makro ma zadanie.
_________________
Wiedza to nie nauka, wiedza to doświadczenie!
ID posta: 147812 Skopiuj do schowka
 
 
haller 
Starszy Forumowicz


Pomógł: 2 razy
Posty: 55
Wysłany: 2012-02-08, 08:12   

Dziękuję za odpowiedzi.
Artiku, a jak połączyć Twoją proceduję z procedują,

Kod:
Private Sub Workbook_Open()
Sheets("Arkusz1").Activate
End Sub



która ustawia Arkusz1 jako domyślny (startowy) przy uruchamianiu skoroszytu?
ID posta: 147837 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

Raffix 
EXCELent Man



Pomógł: 3 razy
Posty: 115
Wysłany: 2012-02-08, 19:08   

Hmm... Ale nie wiem co Ci nie działa w tym kodziku :-) Pewnie wpisałeś to w modułe arkusza :-) wytnij to i wklej do modułu skoroszytu. Moduł skoroszytu jest w edytorze przeważnie na drzewku modułów pod modułami arkuszów i nazywa się This Workbook. Jak tak zrobisz to musi działać :-)
_________________
Wiedza to nie nauka, wiedza to doświadczenie!
ID posta: 147933 Skopiuj do schowka
 
 
Artik 



Pomógł: 1277 razy
Posty: 3463
Wysłany: 2012-02-08, 20:47   

Raffix, ja myślę, że działać to mu działa, tylko nie wie, że należy napisać tak:
Kod:
Private Sub Workbook_Open()
  Worksheets("Arkusz1").Activate
  Call Arkusz1.Makro1
End Sub
:-)

haller, zwracam uwagę, że w powyższym kodzie użyto dwóch różnych odwołań do tego samego arkusza.
W linii
Kod:
Worksheets("Arkusz1").Activate
odwołujemy się do Arkusz1 przez jego nazwę "zakładkową" (nazwa arkusza widoczna w Excelu).
W linii
Kod:
Call Arkusz1.Makro1
odwołujemy się do Arkusz1 (a w zasadzie do makra w module tego arkusza) przez nazwę kodową, która jest widoczna tylko z poziomu edytora VBA (w drzewku projektów - po lewej stronie ekranu), która jest nadawana automatycznie. W powyższym przykładzie obie nazwy są zbieżne, więc nie widać różnicy. Ale po obejrzeniu obu miejsc o których mówię, przejdź do Excela i zmień nazwę arkusza na Ala ma kota. Teraz przejdź do edytora VBA i popatrz na drzewko projektów. Znajdziesz tam taki zapis: Arkusz1 (Ala ma kota), gdzie pierwsza nazwa jest nazwą kodową arkusza, a druga "zakładkową".
Ponieważ najczęściej nie zmieniamy nazwy kodowej, powyższy przykład można jeszcze zapisać w ten sposób:
Kod:
Sub Workbook_Open()
  Arkusz1.Activate
  Call Arkusz1.Makro1
End Sub
gdzie mamy odwołania tylko poprzez nazwę kodową.
Amen.

Artik
ID posta: 147945 Skopiuj do schowka
 
 

EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email

haller 
Starszy Forumowicz


Pomógł: 2 razy
Posty: 55
Wysłany: 2012-02-09, 20:14   

Dziękuję wam obu! - zarówno za kody jak i część teoretyczną, która zawsze się przyda i to nie tylko mnie, ale i innym użytkownikom forum o miernej wiedzy z zakresu VBA.

Raz jeszcze dziękuję i zamykam temat.
Hej! :)
ID posta: 148081 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum