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

<div>-------- Original message --------</div><div>From: "'Mr. Kid' 
mr.nm...@gmail.com [belajar-excel]" <belajar-excel@yahoogroups.com> 
</div><div>Date:20/02/2016  7:39 PM  (GMT+07:00) </div><div>To: BeExcel 
<belajar-excel@yahoogroups.com> </div><div>Subject: Re: [belajar-excel] 
Application.Onkey </div><div>
</div>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