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
>>>>
>>>>
>>>
>>
> 
>
  • [belajar-excel] A... hendrik karnadi hendrikkarn...@yahoo.com [belajar-excel]
    • Re: [belajar... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
    • Re: [belajar... Hendrik Karnadi hendrikkarn...@yahoo.com [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
    • Re: [belajar... Hendrik Karnadi hendrikkarn...@yahoo.com [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
    • Re: [belajar... Hendrik Karnadi hendrikkarn...@yahoo.com [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
    • Re: [belajar... Hendrik Karnadi hendrikkarn...@yahoo.com [belajar-excel]
      • Re: [bel... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]

Kirim email ke