Ini dari tadi dah ngomongin addin dan TIDAK menyentuh script vba yg bukan di addin loh...
Sent from my smart enough phone > On Feb 21, 2016, at 14:29, Hendrik Karnadi hendrikkarn...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com> wrote: > > Betul Mr. Kid... > Tapi jika mel Workbook Open milik aplikasi Excel maka macronya kan hrs > diaktifkan dulu. > > Harapan saya, bisa dilakukan secara langsung mel Workbook Open yang ada di > AddIns tanpa mengaktifkan macro di aplikasi Excelnya (kondisi macronya > Disable). > > Jika file Excelnya sdh Terbuka maka prosedur "Suara" yang ada di AddIns dapat > dijalankan tanpa mengaktifkan macro di aplikasi Excelnya. > > Terima kasih. > > Salam, > Hk > > > Sent from Samsung Mobile > > > -------- Original message -------- > From: "'Mr. Kid' mr.nm...@gmail.com [belajar-excel]" > Date:21/02/2016 7:49 AM (GMT+07:00) > To: BeExcel > Subject: Re: [belajar-excel] Application.Onkey > > > loh... > Sudah benar pakai event workbook open. Tapi tetap jadi dirinya Excel sebagai > aplikasi. Artinya, event workbook open yang dikerjakan oleh si Excel. > > Coba deh diperhatikan lagi. Worksheet adalah anaknya (member of) workbook > (thisworkbook), maka di : > 1. class module sebuah sheet. > Setiap sheet punya event change (worksheet_change). > atau event activate (saat sheet diaktifkan dengan nama prosedur > worksheet_activate) > 2. class module ThisWorkbook > Di Thisworkbook juga ada event sheet change, dengan nama > workbook_sheetchange > atau event sheet activate (BUKAN event activate) dengan nama prosedur > workbook_sheetactivate > > Dengan hirarki sheet adalah anaknya thisworkbook, sheet memiliki event change > atau event activate, maka di thisworkbook juga ada event sheet change atau > sheet activate > > Dengan hirarki thisworkbook jadi anaknya aplikasi, thisworkbook memiliki > event open, maka akan ada event workbook open di class module aplikasi. > > Jadi, keinginan Anda untuk membuat addin yang merespon setiap kali ada > workbook yang dibuka oleh user bisa dilakukan. Tapi event open yang dipakai > adalah workbook open miliknya aplikasi, karena aplikasi yang bisa punya anak > thisworkbook. > > Regards, > Kid > > > > 2016-02-20 21:19 GMT+07:00 Hendrik Karnadi hendrikkarn...@yahoo.com > [belajar-excel] <belajar-excel@yahoogroups.com>: >> >> Terima kasih Mr. Kid atas cerita pendeknya. >> >> Saya terpengaruh jurus Bruce Lee mengenai tendangan berantainya, satu kaki >> bisa nendang beberapa kali. >> >> Analoginya satu kaki = satu file AddIn... >> >> Jadi kalau sdh diangkat (Event Workbook_Open) bisa nendang beberapa kali >> (manggil prosedur lain yang ada dalam AddIn tsb). >> >> Sekali lagi terima kasih Mr. Kid...telah membangunkan saya dari mimpi yang >> ga mungkin kesampean...untuk menjadi seorang Bruce Lee....ha ha ha. >> >> Salam, >> HK >> >> Sent from Samsung Mobile >> >> >> -------- Original message -------- >> From: "'Mr. Kid' mr.nm...@gmail.com [belajar-excel]" >> Date:20/02/2016 7:39 PM (GMT+07:00) >> To: BeExcel >> Subject: Re: [belajar-excel] Application.Onkey >> >> >> event workbook open hanya dijalankan 1 kali, yaitu saat workbook di-open. >> >> File bertipe .xlsm, .xls, .xlsb, .xla, .xlam yang memanfaatkan event >> workbook open, hanya akan dijalankan 1 kali saat workbook tersebut dibuka >> dan tidak ada hubungannya dengan workbook lain dibuka. >> >> Jadi file addin (.xla, .xlam) yang punya event workbook open, maka event >> tersebut hanya dijalankan 1 kali, yaitu saat si file addin di-load oleh >> excel. Kapan ? Saat Excel dibuka (BUKAN saat workbook dibuka) jika si addin >> telah diaktifkan. >> >> Untuk tujuan yang Anda maksud, coba pelajari lebih dulu tentang class >> module, kemudian dilanjutkan dengan object withevents. >> >> >> Kembali ke kasus awal... >> Jadi prosedur workbook open dan prosedur suara tersebut di sebuah file addin >> ya... Misal sebut saja file addin ini bernama siAdd >> Begini... >> Anggap saja file addin bernama siAdd sudah diaktifkan di Excel tersebut oleh >> si mimin kompi. >> >> Suatu hari, ketika Excel belum dibuka sama sekali... datanglah seekor user >> yang kemudian membuka Excel yang sudah aktif addin siAdd-nya (bukan membuka >> sebuah file Excel, tetapi membuka aplikasi Excel). Maka event workbook yang >> ada di dalam siAdd dijalankan. Ingat, belum ada workbook apapun yang dibuka. >> >> Kemudian si user membuka file bernama rahasia.xlsx melalui menu File Open. >> Karena .xlsx, maka tidak ada event workbook open di rahasia.xlsx. Ketika si >> rahasia.xsx selesai dibuka, tidak terjadi apa-apa. Event workbook open nya >> siAdd tidak bekerja sama sekali karena event itu milik siAdd dan tidak >> mungkin dipanggil oleh workbook apapun. >> >> Karena si user sudah puyeng, ditutup semua workbook yang terbuka. Excel-nya >> juga ditutup. Lalu ditinggal pulang. >> >> Besoknya, si user datang lagi. Kali ini si user langsung ke windows explorer >> dan double click file rahasia.xlsx untuk membuka si rahasia.xlsx. >> Begitu file rahasia selesai di-double click di windows explorer, muncul >> flashscreen nya si Excel. Terus si Excel belok (gak mau mendekati si >> rahasia.xlsx yag di double click). Excel ke tempatnya siAdd dulu. Begitu >> pintu rumah siAdd dibuka, event workbook open si Add langsung bekerja. >> Akhirnya si Excel dan siAdd duduk bareng nungguin art-nya siAdd bikin kupi. >> >> Lalu si Excel dan siAdd ngupi-ngupi bareng sambil ketawa-ketiwi >> terbahak-bahak seakan-akan gak pernah punya dosa. >> >> Setelah si Excel dengan siAdd selesai ngupi-ngupi, barulah si Excel ke halte >> dekat windows explorer untuk jemput si rahasia.xlsx. Akhirnya si >> rahasia.xlsx jadi naik panggung. Si user yang dah sedari tadi nungguin si >> rahasia.xlsx naik panggung akhirnya bisa bernapas lega, karena hari itu si >> user bisa merasakan puyeng kembali. >> >> Jadinya, kesan bahwa si workbook event siAdd bekerja saat ada workbook lain >> (seperti rahasia.xlsx yang dibuka) itu adalah prasangka yang terlalu baik >> kepada Excel. Sampai-sampai Excel saja sungkan karena sudah disangkakan >> sebaik itu, yang nyatanya tidak demikian (lah wong malah cuman ngupi-ngupi >> bareng siAdd). Sampai-sampai si Excel heran... kok ya bisa ada yang >> menyangkakan sebaik itu. >> >> >> Coba deh diturut lagi kisah di atas... Yang aktif bekerja itu siExcel. SiAdd >> cuman nungguin doink lalu ngajak ngupi-ngupi.... >> siAdd adalah temen yang kurang baik. Akhirnya siAdd kena gusur dan masuk >> recyclebin. >> >> >> Si Excel merasa kesepian dan mungkin juga dia lelah karena harus terus >> bekerja tanpa ada kesempatan ngupi-ngupi lagi. >> >> Suatu hari, si Excel dikenalin sama siiin. >> Berhubung sudah hari senen, si user kembali ke windows Explorer dan double >> click rahasia.xlsx. Flashscreen Excel tampil, dan si Excel pun tetep ogah >> nyamperin si rahasia.xlsx. Kali ini Excel belok ke rumahnya siiin. Begitu >> pintu rumah siiin diketok, workbook open siiin bekerja. Langsung deh si >> Excel disapa dengan suara merdu siiin..."eh mas Excel... pagi-pagi dah >> mampir kesini. Gak kerja mas ?" >> Excel yang mantan karyawan ngeles.com langsung pasang jurus.... "Anu dek >> in... Baru mau berangkat kerja tapi lupa gak bawa bekel." >> Siiin langsung masuk ke dapur, ambil rantang dan diisi masakan enak. Balik >> ke depan (Excel masih belum masuk ruang tamu loh) dan dikasihkan tuh rantang >> isi masakan. "Nih mas, saya bawain bekel. Kerja yang penuh cemungud ya..." >> Wuuiiih... Excel langsung ngibrit enuh semangat ke tempat si rahasia.xlsx >> sambil nunjukin tuh rantang bekel dari siiin... Sepanjang jalan dari halte >> pinggir windows explorer sampai panggungnya si rahasia.xlsx, si Excel cerita >> tentang rantang siiin. >> >> Sampe-sampe, begitu si user membuka workbook lain yang namanya laporan.xlsm, >> si Excel langsung dateng ketempatnya si laporan.xlsm dan ngetok rumah si >> laporan.xlsm. Begitu si laporan.xlsm membuka pintu, si Excel dah ngebet mo >> nyeritain rantang siiin, tapi si laporan masih harus siap-siap dulu, jadi si >> Excel harus bersabar. Begitu si laporan dah selesai siap-siap, si Excel >> langsung nyerocos nyeritain rantang siiin. >> >> >> Nah... Addin tuh seperti siiin, bukan seperti siAdd... >> SiAdd itu egois, cuma bekerja buat dirinya sendiri. Asal dia hepi, beres dah. >> Siiin itu tipikal supporter. >> >> Siiin support Excel supaya rajin bekerja penuh semangat dengan rantangnya. >> >> Jadi, kalau pengen setiap kali ada yang buka workbook, maka langsung ada >> yang mengucapkan salam, maka suruh si Excel yang ngucapin salam. Bukan >> addin-nya. Addin-nya nyediain rantang yang bikin si Excel ngocehin tuh >> rantang terus menerus. >> >> Karena Excel itu aplikasi, berarti rantang dari siiin itu isinya event untuk >> aplikasi, bukan event untuk workbook. >> Kalau mau membuat event untuk aplikasi, yang baik adalah membuat class >> module khusus untuk mengelola event milik aplikasi. >> Coba deh perhatikan... >> event-event nya workbook dikelola di thisworkbook class module >> event-event nya worksheet dikelola di masing-masing sheet class module. >> jadi, event-event nya aplikasi dikelola di sebuah class module khusus untuk >> si aplikasi. Class module ini yang dibuat dalam addin (seperti siiin yang >> nyiapin rantang). >> >> >> ;) >> >> Regards, >> Kid >> >> >> >> >> >> >> >> >> >> >> >> >> 2016-02-20 18:19 GMT+07:00 Hendrik Karnadi hendrikkarn...@yahoo.com >> [belajar-excel] <belajar-excel@yahoogroups.com>: >>> >>> Setiap kali ada yang buka workbook (apa saja) Mr. Kid, tentunya jika >>> addinsnya kita kita aktifkan (centang). >>> >>> Kedua prosedur tsb berada dalam satu file AddIns (mis.MacroColl.xla). >>> >>> Terima kasih. >>> >>> Salam, >>> HK >>> >>> >>> Sent from Samsung Mobile >>> >>> >>> -------- Original message -------- >>> From: "'Mr. Kid' mr.nm...@gmail.com [belajar-excel]" >>> Date:20/02/2016 5:14 PM (GMT+07:00) >>> To: BeExcel >>> Subject: Re: [belajar-excel] Application.Onkey >>> >>> >>> Terus terang, saya ndak mudeng maksudnya... >>> >>> Itu addin nya mau dibuat selalu menampilkan pesan setiap kali ada yang buka >>> workbook atau hanya ditampilkan 1 kali saat instansi excel tersebut >>> diaktifkan pertama kali ? >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> 2016-02-20 11:44 GMT+07:00 Hendrik Karnadi hendrikkarn...@yahoo.com >>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>> >>>> Terima kasih Mr. Kid atas masukannya. >>>> >>>> Ceritanya saya ingin membuat beberapa prosedur dan "memasukkannya" sebagai >>>> AddIns untuk membantu teman2 yang kesulitan pake macro. >>>> >>>> Sebagai sample saya ingin mem buat dua prodedur: >>>> 1. Menggunakan event Workbook_Open untuk mengucapkan salam... >>>> Private Sub Workbook Open () >>>> MsgBox "Hello" & VbCrLf & _ >>>> "How are you today?", 64, "GREETINGS" >>>> Suara >>>> >>>> 2. Saya tulis prosedur Suara di Module1...(untuk mengeluarkan suara yang >>>> ditulis pada sel aktif file yang dibuka) >>>> Sub Suara() >>>> Application.ActiveCell.Speak >>>> End Sub >>>> >>>> Saya punya satu file bernama "Contoh" yang di sel aktifnya ada >>>> tulisan.."Hello, how are you today?". >>>> >>>> Inginnya, pada saat file Contoh dibuka keluar msgbox butir1 (sdh ok) dan >>>> pada saat User menekan tombol "OK" keluar suara "Hello, how are you today" >>>> (error). >>>> >>>> Yang terjadi (ketika User membuka file Contoh dan menekan tombol "Ok"), >>>> keluar message >>>> Run time error 91: >>>> Object Variable or With block variable not set >>>> (Warna kuning ada pada prosedur Suara). >>>> >>>> Namun jika prosedur Suara saya jalankan tersendiri pada saat file Contoh >>>> sdh tampak (terbuka) dan sel pointer berada pada sel aktif maka akan >>>> keluar suara >>>> "Hello, how are you today". >>>> >>>> Demikian ceritanya Mr. Kid. >>>> Mohon petunjuk bagaimana caranya supaya prosedur1 dan 2 bisa ngelink >>>> (prosedur 2 langsung dieksekusi pada saat User menekan tombol "OK" >>>> >>>> Terima kasih. >>>> >>>> Salam, >>>> HK >>>> >>>> >>>> Sent from Samsung Mobile >>>> >>>> >>>> -------- Original message -------- >>>> From: "'Mr. Kid' mr.nm...@gmail.com [belajar-excel]" >>>> Date:20/02/2016 7:07 AM (GMT+07:00) >>>> To: BeExcel >>>> Subject: Re: [belajar-excel] Application.Onkey >>>> >>>> >>>> Pak HK, >>>> >>>> Begini : >>>> 1. Workbook X menjalankan prosedur TANPA input parameter di workbook X >>>> Application.OnKey "keynya disini" , >>>> "nama_prosedur_di_workbook_yang_sama" >>>> 2. Workbook X menjalankan prosedur DENGAN input parameter di workbook X >>>> ( >>>> misal prosedur yang dijalankan memiiki 2 input parameter, >>>> parameter 1 meminta nilai bertipe text atau datetime >>>> parameter 2 meminta nilai bertipe numerik atau boolean >>>> ) >>>> Application.OnKey "keynya disini" , >>>> "'nama_prosedur_di_workbook_yang_sama ""Param1"" , Param2'" >>>> >> param1 adalah nilai text atau datetime yang ditulis sebagai text >>>> berformat YYYY-MM-DD >>>> >> param2 adalah nilai numerik atau boolean >>>> >>>> 3. Workbook X menjalankan prosedur TANPA input parameter di workbook A >>>> yang terbuka di instansi Excel yang sama >>>> *** kalau terbuka di instansi Excel yang berbeda, maka tidak mungkin >>>> dilakukan >>>> Application.OnKey "keynya disini" , "'nama >>>> workbook.ekstensinya'!nama_prosedur_di_workbook_A" >>>> >>>> 4. Workbook X menjalankan prosedur DENGAN input parameter di workbook A >>>> yang terbuka di instansi Excel yang sama >>>> *** kalau terbuka di instansi Excel yang berbeda, maka tidak mungkin >>>> dilakukan >>>> Application.OnKey "keynya disini" , "'nama >>>> workbook.ekstensinya'!'nama_prosedur_di_workbook_A ""Param1"" , Param2'" >>>> >>>> Untuk nomor 3 dan 4, jika workbook A belum terbuka, penulisan workbooknya >>>> harus lengkap (file fullname alias ada path-nya). >>>> >>>> >>>> Regards, >>>> Kid >>>> >>>> >>>> >>>> >>>> 2016-02-19 18:00 GMT+07:00 hendrik karnadi hendrikkarn...@yahoo.com >>>> [belajar-excel] <belajar-excel@yahoogroups.com>: >>>>> >>>>> Dear Be-Exceler, >>>>> Saya sedang mencoba menggunakan VBA...."Application.OnKey" yang menurut >>>>> panduan penulisannya adalah sbb : >>>>> Application.OnKey(Key As String,[Procedur]) >>>>> >>>>> Saya ingin menjalankan Prosedur bernama Coba yang ada di Workbook lain >>>>> (bersifat public) setelah menekan tombol Enter. >>>>> Saya tulis seperti ini: >>>>> Application.OnKey "{Enter}", "{Coba}" >>>>> >>>>> Namun prosedur Coba tidak dijalankan... >>>>> >>>>> Pertanyaan saya: >>>>> Bagaimana penulisannya agar prosedur Coba bisa dijalankan ? >>>>> >>>>> Terima kasih. >>>>> >>>>> Salam, >>>>> HK >>> >> > >