Minggu, 21 Februari 2016

[belajar-excel] Digest Number 3765

8 Messages

Digest #3765
1a
Bls: Bls: [belajar-excel] Lookup data manpower by "Mustakim Irwan" mustakim.irwan
2a
Re: Application.Onkey by "Hendrik Karnadi" hendrikkarnadi
2b
Re: Application.Onkey by "Mr. Kid" nmkid.family@ymail.com
2c
Re: Application.Onkey by "Hendrik Karnadi" hendrikkarnadi
2d
Re: Application.Onkey by "Mr. Kid" nmkid.family@ymail.com
2e
Re: Application.Onkey by "Hendrik Karnadi" hendrikkarnadi
2f
Re: Application.Onkey by "Mr. Kid" nmkid.family@ymail.com
3a
Bls: Menempatkan Shape dengan Macro by "Zerlinda Seismica" seismica

Messages

Sat Feb 20, 2016 3:02 am (PST) . Posted by:

"Mustakim Irwan" mustakim.irwan

Dear Pak Toby,
Saya ucapkan terima kasih banyak atas solusinya dan sudah sesuai dengan keinginan saya, tetapi ada satu lagi pertanyaan yang ingin saya tanyakan dan mohon solusinya.

Bagaimanakah caranya untuk membuatkan data validasinya, khususnya untuk Status Organiknya dan Bulan.Misalnya 
-Kalau di pilih expatriate maka yang munculhanya expatriate saja tetapi sesuai dengan jabatannya / rank ( Sheet Summary ).-kalau di pilih kontrak maka yang muncul hanya karyawan kontrak saja- dst-tapi kalau yang di pilih All maka semua karyawan yang berada di PT. A & PT.B yang muncul dan  dimasing - masingkolom sesuai dengan jabatannya, status Oragniknya ( Tetap, Kontrak, Expatriate, Pasca kontrak, Indirect & Direct ).
File terlampir 
Sebelum dan sesudahnya saya ucapkan terima kasih banyak atas solusi Pak Toby yang sangat berguna bagi saya.

Atas perhatiannya sekali lagi saya ucapkan terima.
Salam,Mustakim

Pada Jumat, 19 Februari 2016 19:22, "Toby kenzo tobykenzo@yahoo.co.id [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:


 
| Dear Mustakim,Biasanya setiap pertanyaan di forum ini di berikan berupa contoh dan keingin dari user yg empunya pertanyaan.
Jika anda memang awaw akan excel,cobalah bertanya satu2 dr apa yg tidak anda mengerti,setiap pertanyaan anda pasti akan dijawab dlm forum ini.Di forum ini adalah tempat bagi mereka yg ingin benar2 mau belajar excel.
Cobalah belajar step by step, lama2 anda akan mengerti.
Kembali ke permasalahan yg anda hadapi, sebenarnya apa yg anda inginkan..?TerimaKasih.Sent from Yahoo Mail on Android |

From: Mustakim Irwan mustakim.irwan@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>;
To: <belajar-excel@yahoogroups.com>;
Subject: Bls: [belajar-excel] Lookup data manpower
Sent: Fri, Feb 19, 2016 8:01:36 AM


|   Dear Pak Toby,
Saya ucapkan terima kasih banyak atas solusinya dan saya sudah berusaha untuk mengikuti langkah - langkah yang sudah saya download datanya tetapi saya tetap masih belum paham dan bingung di mulai dari mana langkahnya...Pak Toby, saya masih awam dengan Excel apalagi di dalam kasus saya ini benar - benar rumit setelah dijabarkan oleh Mr. Kid.
Jika Pak Toby berkenan dan ada waktu saya mohon bantuannya sedikit untuk memberikan solusi yang lebih detail lagi.
Atas perhatiannya saya ucapkan terima kasih.
salam,Mustakim


Pada Jumat, 19 Februari 2016 9:00, "Toby kenzo tobykenzo@yahoo.co.id [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:


 
Hai Mustakim,

Bukankah sudah pernah saya berikan contohnya....?

TerimaKasih.

Pada Kam, 18/2/16, Mustakim Irwan mustakim.irwan@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> menulis:

Judul: Bls: [belajar-excel] Lookup data manpower [1 Attachment]
Kepada: belajar-excel@yahoogroups.com
Tanggal: Kamis, 18 Februari, 2016, 3:14 PM


 









Assalamu'alaikum Wr. Wb


Saya ucapkan
terima kasih banyak kepada semua master khususnya Mr. Kid
yang sudah memberikan masukan dan ide dalam membuat report
sehingga menjadi report yang sempurna dengan memberikan
penjelasan secara detail sekali (dibuatkan pemetaan dalam
kasus saya ini) dan ini menjadi satu ilmu yang sangat
bermanfaat untuk saya.


Saya
mencoba untuk membuatkan pemetaannya sesuai dengan arahan
dari Mr. Kid tetapi saya tetap masih tidak bisa
mengerjakannya, oleh sebab itu saya mohon bantuan kepada
semua master untuk memberikan solusinya.File
terlampir
Atas perhatiannya Saya
ucapkan terima kasih kepada semua master yang sudah mau
membantu saya dalam memecahkan kasus ini.

Wassalam
Mustakim


Pada Kamis, 18
Februari 2016 8:04, "'Mr. Kid'
mr.nmkid@gmail.com [belajar-excel]"
<belajar-excel@yahoogroups.com> menulis:



 













Hai
BeExceller,

Pada
kasus ini :
Sebelum mengisi
angka-angka di tabel summary dengan formula, ada baiknya
Anda (siapa saja yang mau, kalau pemilik kasusnya sih sudah
jelas agar sebaiknya) membuat sheets yang menjabarkan setiap
dimensi sheet summary beserta sumber datanya.

Contoh :
1. di Summary ada dimensi yang
itemnya adalah T, K, P dan dimisalkan, dimensi ini diberi
nama [STATUS ORG SUM]
2. setiap
item [STATUS ORG SUM] bisa jadi terdiri dari beberapa item
di sumber data di kolom [Status Organik].
    Misal, item T di [STATUS ORG
SUM] bisa terdiri dari item-item sumber data kolom [Status
Organik] berikut :
              a.
TETAP
             
b. EXPATRIATE
3. dibuatlah sebuah
sheet baru diberi nama refSTATORG yang berisi kolom-kolom :

     [Status
Organik]                [STATUS ORG
SUM]         
TETAP                                    
T
         
EXPATRIATE                          
T
          dst

Lakukan hal seperti di atas untuk
dimensi summary yang lain. Kalau tidak salah, di sheet
Summary ada dimensi-dimensi berikut :
A. [STATUS ORG SUM]   yang itemnya
adalah T,K,P (sebagai kelompok dari kolom [Status Organik]
di sumber data)
B. [DIRECT
INDIRECT]   yang itemnya adalah Direct dan Indirect (entah
sebagai kelompok dari kolom apa saja di sumber data)
C. [JABATAN] berisi DIR, SPV, MAN,
dsb (sebagai kelompok dari kolom X <misalnya> di
sumber data)
D. [DEPT SUM] berisi
departemen summary per PT sebagai kelompok dari kolom-kolom
PT, Lokasi, Departemen <mungkin>E. [LOKASI]
berisi PG, dsb yang di-input di cells C5 sheet summary
F.  [PERIODE] berisi JAN,FEB,dsb
sebagai kelompok dari kolom APA <misalnya> di sumber
data
G. [PT SUM] berisi PT A, PT
B, dsb sebagai kelompok dari PT <misalnya> di sumber
data

Jadi, jika dibuatkan 7 sheet baru
(poin A sampai G) berisi masing-masing definisi dimensi
Summary, maka sheet sumber data bisa diberi formula untuk
memasang kelompok-kelompok dimensi summary tersebut.

Hal-hal
di atas tersebut sering disebut proses pemetaan data, yaitu
pemetaan data dari sumber data ke output.
Contoh peta data di atas sana tadi
yang tabelnya begini :
     [Status
Organik]                [STATUS ORG
SUM]         
TETAP                                    
T
         
EXPATRIATE                          
T
          dst

Dari
peta data di atas, bisa disusun kalimat begini :
> Semua kolom [Status Organik] di
sumber data yang bunyinya TETAP, dimasukkan ke summary
dimensi [STATUS ORG SUM] item T
> Semua
kolom [Status Organik] di sumber data yang bunyinya
EXPATRIATE, dimasukkan ke summary dimensi [STATUS ORG SUM]
item T
> dst

kalau bahasanya
di-manusia-ken :
> pokok e,
kalau sumber data kolom [Status Organik] isinya bunyi TETAP
atau bunyi EXPATRIATE, nilainya dimasukkan ke summary yang
[STATUS ORG SUM] nya berbunyi T
> lah kalau sumber data [Status
Organik] isinya bunyi dst1, nilainya dimasukkan ke
blablabla1
> lah kalau
sumber data [Status Organik] isinya bunyi dst2, nilainya
dimasukkan ke blablabla2
.
.
.
> lah kalau sumber data
[Status Organik] isinya bunyi dstN, nilainya dimasukkan ke
blablablaN


Hati-hati saat menyusun dimensi [DEPT
SUM], karena teks kolom Departemen di sumber data harus
dipasang ke kelompok di summary dengan beberapa kondisi yang
tergantung nilai (isi data) kolom lain (seperti kolom PT
atau Lokasi atau apa saja [pokok e, ndak ada member milis
yang tahu bahwa hal ini tergantung kolom apa saja])


----------------------------------------------------------
>>> BAGAIMANA jika tidak usah
menggunakan tabel-tabel seperti di atas ? <<<
----------------------------------------------------------
Yang terjadi adalah hal berikut yang
berurutan dari nomor 1
1. Anda
harus menjabarkan dengan rinci dengan kalimat bahasa manusia
menggunakan Ejaan Yang Disempurnakan terhadap seluruh
kriteria dari setiap kolom dan baris di sheet Summary.
Contoh :
- Pada sheet Summary kelompok
'PT A', dengan Departemen berbunyi 'HRD & GA
MT HARYONO & PULO GADUNG SECTION' pada kolom Jabatan
(baris Excel 7 saja atau gabungan baris Excel 7 dan 8)
berbunyi 'MAN', sedangkan pada kolom tersebut di
baris Excel 9 berbunyi 'T', maka
ambil nilai di sumber data yang kolom ....(sampai akhir
ayat).
- Pada sheet Summary kelompok 'PT
A', dengan Departemen berbunyi 'HRD
& GA MT HARYONO & PULO GADUNG SECTION' pada
kolom Jabatan (baris
Excel 7 saja atau gabungan baris Excel 7 dan 8) berbunyi
'MAN',
sedangkan pada kolom tersebut di baris Excel 9 berbunyi
'K', maka
ambil
nilai di sumber data yang kolom ....(sampai akhir ayat).

...begitu
seterusnya sampai seluruhnya terjabarkan. (sepertinya bakal
jadi file dokumen berisi ribuan baris deh)

2. Dari
hasil nomor 1, mulai disusun formula yang bisa jadi akan
puuuuaaaaannnnnjaaaang buuuaaaangeeeeti mengikuti semua
kaidah nomor 1.
3. Kemudian
ternyata masih ada kekeliruan dalam menyusun formula atau
suatu saat nanti ada penambahan atau pengubahan definisi
nomor 1, maka ulangi nomor 2 karena melacak urutan proses
formulanya akan sulit dan lebih mudah membuat ulang.
4. Akhirnya posting lagi ke milis
untuk minta diperbaiki oleh member (lumayan, dibuatkan
gratisan walau ndak mudeng apa bunyi formula tersebut)
5. Member milis ogah membantu karena
formulanya ruwet, akhirnya, trit akan terus terkatung-katung
lama
6. Galau, akan terus pakai
formula atau mulai beralih dengan puyeng menyusun
tabel-tabel merepotkan seperti di atas sana.
7. ..... ya gitu deh

----------------------------------------------------------
>>> BAGAIMANA punya tabel-tabel
seperti di atas ? <<<
----------------------------------------------------------
1. Sumber data akan ditambahkan
beberapa kolom bantu berisi formula sederhana penyusun
dimensi-dimensi summary
2.
Summary bisa disusun dengan salah satu atau beberapa cara
berikut :
      a.
formula

      b. pivot
table
      c. otomasi
dengan VBA yang baris-baris kodenya tidak banyak dan mudah
ditata kelola
         
*** fyi, menata kelola baris-baris kode yang sedikit jauh
lebih mudah daripada menata kelola baris-baris kode yang
banyak
             
(boleh percaya dan juga boleh tidak, tapi sebaiknya percaya
deh)
3. Pengubahan kebijakan
terhadap output akan terfokuskan pada tabel-tabel pemetaan
(seperti yang di atas sana), yang tampak sederhana dan
tertata rapi. Bisa jadi perlu penambahan beberapa kondisi di
dalam formula di sheet sumber data, tetapi hal ini tetaplah
tidak sulit untuk dipelajari dan dipahami.
4. Dengan tabel-tabel peta data yang
sama yang sudah ada, bisa disusun output-output lainnya,

seperti agregat per tahun atau summary per departemen, dan
sebagainya secara mudah. Hal ini disebabkan karena sumber
data telah berisi banyak informasi yang lebih mendekati
bunyi output.

---------------------------
> mengolah data BUKAN sekedar
memasang formula atau membuat baris-baris kode atau
memanfaatkan fitur-fitur yang ada
> mengolah data adalah
memperlakukan sumber data secara bertahap sampai akhirnya
menghasilkan informasi yang dibutuhkan
> oleh sebab itu, yang dibutuhkan
dalam pengolahan data adalah segala sesuatu yang bisa
memperjelas dan mempermudah penyusunan perlakuan terhadap
sumber data
> data referensi
(termasuk peta data seperti di atas sana) adalah salah satu
usaha memperjelas dan mempermudah penyusunan perlakuan
terhadap sumber data
---------------------------

:(
Andai kurang berkenan, mohon
dimaafkan ya...
Karena sudah
membuat Anda sekalian capek membaca tetapi tidak ada solusi
yang ditawarkan melainkan menambah masalah saja.

Wassalam,
Kid



2016-02-17 11:01 GMT+07:00
Mustakim Irwan mustakim.irwan@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:


























 
















Dear All Master
Excel,

Terimakasih banyak
saya ucapkan, sebelumnya saya mohon maaf walaupun saya tidak
pernah bertanya
dan sebenarnya banyak
sekali pertanyaan yang ingin saya tanyakan diseputar excel.
Tetapi ternyata
pertanyaan saya sudah
banyak terwakili oleh rekan2 milis, dan sekaligus sudah
di jelaskan dengan memberikan masukan dan
contoh datanya sehingga saya tinggal
mencermati ajaran para Master di blog ini.

Jawaban2 para Master dari
pertanyaan anggota milis ini sangat membantu saya dalam
menyelesaikan pekerjaan saya sehari - hari tentang excel.

Saat ini saya mendapatkan
kasus dalam pembuatan Report yang tidak bisa saya selesaikan
sendiri, semua contoh data yang sudah saya download di milis
ini dan sudah saya terapkan tetapi saya belum bisa juga
untuk memecahkan kasus ini.

akhirnya saya putuskan untuk bertanya kepada
para master excel untuk membantu memecahkan kasus yang saya
hadapi.
contoh file saya lampirkan.

contoh kasusnya sebagai
berikut :
Kasus untuk pembuatan report,
misal total karyawan ada 282 orang yang terdiri dari PT. A
dan PT. B dan terdapat 24 Departemen.


Sekali lagi saya ucapkan
terimakasih atas ajaran para Master, semoga menjadi
berkah untuk semuanya.

Salam,


Mustakim





























#yiv4639480141 #yiv4639480141 --
#yiv4639480141ygrp-mkp {
border:1px solid #d8d8d8;font-family:Arial;margin:10px
0;padding:0 10px;}

#yiv4639480141 #yiv4639480141ygrp-mkp hr {
border:1px solid #d8d8d8;}

#yiv4639480141 #yiv4639480141ygrp-mkp #yiv4639480141hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}

#yiv4639480141 #yiv4639480141ygrp-mkp #yiv4639480141ads {
margin-bottom:10px;}

#yiv4639480141 #yiv4639480141ygrp-mkp .yiv4639480141ad {
padding:0 0;}

#yiv4639480141 #yiv4639480141ygrp-mkp .yiv4639480141ad p {
margin:0;}

#yiv4639480141 #yiv4639480141ygrp-mkp .yiv4639480141ad a {
color:#0000ff;text-decoration:none;}
#yiv4639480141 #yiv4639480141ygrp-sponsor
#yiv4639480141ygrp-lc {
font-family:Arial;}

#yiv4639480141 #yiv4639480141ygrp-sponsor
#yiv4639480141ygrp-lc #yiv4639480141hd {
margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}

#yiv4639480141 #yiv4639480141ygrp-sponsor
#yiv4639480141ygrp-lc .yiv4639480141ad {
margin-bottom:10px;padding:0 0;}

#yiv4639480141 #yiv4639480141actions {
font-family:Verdana;font-size:11px;padding:10px 0;}

#yiv4639480141 #yiv4639480141activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}

#yiv4639480141 #yiv4639480141activity span {
font-weight:700;}

#yiv4639480141 #yiv4639480141activity span:first-child {
text-transform:uppercase;}

#yiv4639480141 #yiv4639480141activity span a {
color:#5085b6;text-decoration:none;}

#yiv4639480141 #yiv4639480141activity span span {
color:#ff7900;}

#yiv4639480141 #yiv4639480141activity span
.yiv4639480141underline {
text-decoration:underline;}

#yiv4639480141 .yiv4639480141attach {

clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}

#yiv4639480141 .yiv4639480141attach div a {
text-decoration:none;}

#yiv4639480141 .yiv4639480141attach img {
border:none;padding-right:5px;}

#yiv4639480141 .yiv4639480141attach label {
display:block;margin-bottom:5px;}

#yiv4639480141 .yiv4639480141attach label a {
text-decoration:none;}

#yiv4639480141 blockquote {
margin:0 0 0 4px;}

#yiv4639480141 .yiv4639480141bold {
font-family:Arial;font-size:13px;font-weight:700;}

#yiv4639480141 .yiv4639480141bold a {
text-decoration:none;}

#yiv4639480141 dd.yiv4639480141last p a {
font-family:Verdana;font-weight:700;}

#yiv4639480141 dd.yiv4639480141last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}

#yiv4639480141 dd.yiv4639480141last p
span.yiv4639480141yshortcuts {
margin-right:0;}

#yiv4639480141 div.yiv4639480141attach-table div div a {
text-decoration:none;}

#yiv4639480141 div.yiv4639480141attach-table {
width:400px;}

#yiv4639480141 div.yiv4639480141file-title a, #yiv4639480141
div.yiv4639480141file-title a:active, #yiv4639480141
div.yiv4639480141file-title a:hover, #yiv4639480141

div.yiv4639480141file-title a:visited {
text-decoration:none;}

#yiv4639480141 div.yiv4639480141photo-title a,
#yiv4639480141 div.yiv4639480141photo-title a:active,
#yiv4639480141 div.yiv4639480141photo-title a:hover,
#yiv4639480141 div.yiv4639480141photo-title a:visited {
text-decoration:none;}

#yiv4639480141 div#yiv4639480141ygrp-mlmsg
#yiv4639480141ygrp-msg p a span.yiv4639480141yshortcuts {
font-family:Verdana;font-size:10px;font-weight:normal;}

#yiv4639480141 .yiv4639480141green {
color:#628c2a;}

#yiv4639480141 .yiv4639480141MsoNormal {
margin:0 0 0 0;}

#yiv4639480141 o {
font-size:0;}

#yiv4639480141 #yiv4639480141photos div {
float:left;width:72px;}

#yiv4639480141 #yiv4639480141photos div div {
border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}

#yiv4639480141 #yiv4639480141photos div label {
color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}

#yiv4639480141 #yiv4639480141reco-category {
font-size:77%;}

#yiv4639480141 #yiv4639480141reco-desc {
font-size:77%;}

#yiv4639480141 .yiv4639480141replbq {
margin:4px;}

#yiv4639480141 #yiv4639480141ygrp-actbar div a:first-child {
margin-right:2px;padding-right:5px;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg {
font-size:13px;font-family:Arial, helvetica, clean,
sans-serif;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg table {
font-size:inherit;font:100%;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg select,
#yiv4639480141 input, #yiv4639480141 textarea {
font:99% Arial, Helvetica, clean, sans-serif;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg pre, #yiv4639480141
code {
font:115% monospace;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg * {
line-height:1.22em;}

#yiv4639480141 #yiv4639480141ygrp-mlmsg #yiv4639480141logo {
padding-bottom:10px;}


#yiv4639480141 #yiv4639480141ygrp-msg p a {
font-family:Verdana;}

#yiv4639480141 #yiv4639480141ygrp-msg
p#yiv4639480141attach-count span {
color:#1E66AE;font-weight:700;}

#yiv4639480141 #yiv4639480141ygrp-reco
#yiv4639480141reco-head {
color:#ff7900;font-weight:700;}

#yiv4639480141 #yiv4639480141ygrp-reco {
margin-bottom:20px;padding:0px;}

#yiv4639480141 #yiv4639480141ygrp-sponsor #yiv4639480141ov
li a {
font-size:130%;text-decoration:none;}

#yiv4639480141 #yiv4639480141ygrp-sponsor #yiv4639480141ov
li {
font-size:77%;list-style-type:square;padding:6px 0;}

#yiv4639480141 #yiv4639480141ygrp-sponsor #yiv4639480141ov
ul {
margin:0;padding:0 0 0 8px;}

#yiv4639480141 #yiv4639480141ygrp-text {
font-family:Georgia;}

#yiv4639480141 #yiv4639480141ygrp-text p {
margin:0 0 1em 0;}

#yiv4639480141 #yiv4639480141ygrp-text tt {
font-size:120%;}

#yiv4639480141 #yiv4639480141ygrp-vital ul li:last-child {
border-right:none !important;
}
#yiv4639480141


|

#yiv3805944979 #yiv3805944979 -- #yiv3805944979ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3805944979 #yiv3805944979ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3805944979 #yiv3805944979ygrp-mkp #yiv3805944979hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3805944979 #yiv3805944979ygrp-mkp #yiv3805944979ads {margin-bottom:10px;}#yiv3805944979 #yiv3805944979ygrp-mkp .yiv3805944979ad {padding:0 0;}#yiv3805944979 #yiv3805944979ygrp-mkp .yiv3805944979ad p {margin:0;}#yiv3805944979 #yiv3805944979ygrp-mkp .yiv3805944979ad a {color:#0000ff;text-decoration:none;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ygrp-lc {font-family:Arial;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ygrp-lc #yiv3805944979hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ygrp-lc .yiv3805944979ad {margin-bottom:10px;padding:0 0;}#yiv3805944979 #yiv3805944979actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3805944979 #yiv3805944979activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3805944979 #yiv3805944979activity span {font-weight:700;}#yiv3805944979 #yiv3805944979activity span:first-child {text-transform:uppercase;}#yiv3805944979 #yiv3805944979activity span a {color:#5085b6;text-decoration:none;}#yiv3805944979 #yiv3805944979activity span span {color:#ff7900;}#yiv3805944979 #yiv3805944979activity span .yiv3805944979underline {text-decoration:underline;}#yiv3805944979 .yiv3805944979attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3805944979 .yiv3805944979attach div a {text-decoration:none;}#yiv3805944979 .yiv3805944979attach img {border:none;padding-right:5px;}#yiv3805944979 .yiv3805944979attach label {display:block;margin-bottom:5px;}#yiv3805944979 .yiv3805944979attach label a {text-decoration:none;}#yiv3805944979 blockquote {margin:0 0 0 4px;}#yiv3805944979 .yiv3805944979bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3805944979 .yiv3805944979bold a {text-decoration:none;}#yiv3805944979 dd.yiv3805944979last p a {font-family:Verdana;font-weight:700;}#yiv3805944979 dd.yiv3805944979last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3805944979 dd.yiv3805944979last p span.yiv3805944979yshortcuts {margin-right:0;}#yiv3805944979 div.yiv3805944979attach-table div div a {text-decoration:none;}#yiv3805944979 div.yiv3805944979attach-table {width:400px;}#yiv3805944979 div.yiv3805944979file-title a, #yiv3805944979 div.yiv3805944979file-title a:active, #yiv3805944979 div.yiv3805944979file-title a:hover, #yiv3805944979 div.yiv3805944979file-title a:visited {text-decoration:none;}#yiv3805944979 div.yiv3805944979photo-title a, #yiv3805944979 div.yiv3805944979photo-title a:active, #yiv3805944979 div.yiv3805944979photo-title a:hover, #yiv3805944979 div.yiv3805944979photo-title a:visited {text-decoration:none;}#yiv3805944979 div#yiv3805944979ygrp-mlmsg #yiv3805944979ygrp-msg p a span.yiv3805944979yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv3805944979 .yiv3805944979green {color:#628c2a;}#yiv3805944979 .yiv3805944979MsoNormal {margin:0 0 0 0;}#yiv3805944979 o {font-size:0;}#yiv3805944979 #yiv3805944979photos div {float:left;width:72px;}#yiv3805944979 #yiv3805944979photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv3805944979 #yiv3805944979photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv3805944979 #yiv3805944979reco-category {font-size:77%;}#yiv3805944979 #yiv3805944979reco-desc {font-size:77%;}#yiv3805944979 .yiv3805944979replbq {margin:4px;}#yiv3805944979 #yiv3805944979ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv3805944979 #yiv3805944979ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv3805944979 #yiv3805944979ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv3805944979 #yiv3805944979ygrp-mlmsg select, #yiv3805944979 input, #yiv3805944979 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv3805944979 #yiv3805944979ygrp-mlmsg pre, #yiv3805944979 code {font:115% monospace;}#yiv3805944979 #yiv3805944979ygrp-mlmsg * {line-height:1.22em;}#yiv3805944979 #yiv3805944979ygrp-mlmsg #yiv3805944979logo {padding-bottom:10px;}#yiv3805944979 #yiv3805944979ygrp-msg p a {font-family:Verdana;}#yiv3805944979 #yiv3805944979ygrp-msg p#yiv3805944979attach-count span {color:#1E66AE;font-weight:700;}#yiv3805944979 #yiv3805944979ygrp-reco #yiv3805944979reco-head {color:#ff7900;font-weight:700;}#yiv3805944979 #yiv3805944979ygrp-reco {margin-bottom:20px;padding:0px;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ov li a {font-size:130%;text-decoration:none;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv3805944979 #yiv3805944979ygrp-sponsor #yiv3805944979ov ul {margin:0;padding:0 0 0 8px;}#yiv3805944979 #yiv3805944979ygrp-text {font-family:Georgia;}#yiv3805944979 #yiv3805944979ygrp-text p {margin:0 0 1em 0;}#yiv3805944979 #yiv3805944979ygrp-text tt {font-size:120%;}#yiv3805944979 #yiv3805944979ygrp-vital ul li:last-child {border-right:none !important;}#yiv3805944979

Sat Feb 20, 2016 3:18 am (PST) . Posted by:

"Hendrik Karnadi" hendrikkarnadi

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

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

Sat Feb 20, 2016 4:39 am (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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
>>>
>>>
>>
>
>

Sat Feb 20, 2016 6:18 am (PST) . Posted by:

"Hendrik Karnadi" hendrikkarnadi

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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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

Sat Feb 20, 2016 4:50 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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
>>>>
>>>>
>>>
>>
>
>

Sat Feb 20, 2016 11:29 pm (PST) . Posted by:

"Hendrik Karnadi" hendrikkarnadi

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

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

Sat Feb 20, 2016 11:55 pm (PST) . Posted by:

"Mr. Kid" nmkid.family@ymail.com

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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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.nmkid@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 hendrikkarnadi@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
>>>
>>
>
>

Sat Feb 20, 2016 9:10 pm (PST) . Posted by:

"Zerlinda Seismica" seismica

alhamdulillah..makasih Mr Kid saya coba pelajari dan kembangkan sesuai kebutuhan...

Pada Jumat, 19 Februari 2016 10:46, Zerlinda Seismica <seismica@yahoo.com> menulis:


Assalamualaikum wrwb
Semoga para member diberi ketenangan dan keberkahan serta diberi keringanan untuk membantu kebaikan "memasukan&quot; kegembiraan kepada orang lain.. aamiin.
mohon bantuannya bagaimanaformula macro1.membuat gambar panah  sebelah kiri cel lD4 dengan panjang dan jenis sperti contoh 1dan posisi panahnyaditengah cell D42. membuatgambar panah  sebelah kanan  cel l D4 dengan panjang dan jenis sperticontoh2 dan posisi panahnya dibawah cell D63. membuatgambar panah  sebelah kiri cel l D5dengan panjang dan jenis sperti contoh3 dan posisi panahnyaditengah D84. membuatgambar panah  sebelah kanan cel l D5dengan panjang dan jenis sperti contoh4 dan posisi panahnyadibawah D10 Semoga ini menjad jalan belar macro buat saya
Wassalam
Seismica

============================================================
Pojok Lowongan Kerja yang disediakan milis :
http://milis-belajar-excel.1048464.n5.nabble.com/Pojok-Lowongan-Kerja-f5725753.html
*** Posting lowongan kerja : ke link tersebut dan klik New Topic
============================================================
bergabung ke milis (subscribe), kirim mail kosong ke: belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke: belajar-excel@yahoogroups.com
berkunjung ke web milis : http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran : http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di : http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe), kirim mail kosong ke : belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar