Sabtu, 23 Mei 2015

[belajar-excel] Digest Number 3439

Milis Belajar Microsoft Excel

12 Messages

Digest #3439
2a
Re: Cara membuat jam digital pada excel by "Mr. Kid" nmkid.family@ymail.com
2b
Re: Cara membuat jam digital pada excel by "Mr. Kid" nmkid.family@ymail.com
2c
2d
2e
Re: Cara membuat jam digital pada excel by "Mr. Kid" nmkid.family@ymail.com
2f
Re: Cara membuat jam digital pada excel by "Mr. Kid" nmkid.family@ymail.com

Messages

Fri May 22, 2015 3:12 am (PDT) . Posted by:

"Hendrik Karnadi" hendrikkarnadi

Terima kasih mas Toby.

Salam,
HK

Sent from Samsung Mobile

<div>-------- Original message --------</div><div>From: "Toby kenzo tobykenzo@yahoo.co.id [belajar-excel]" <belajar-excel@yahoogroups.com> </div><div>Date:22/05/2015 4:46 PM (GMT+07:00) </div><div>To: belajar-excel@yahoogroups.com </div><div>Subject: Bls: Bls: [belajar-excel] Cara membuat jam digital pada excel </div><div>
</div>Dear Pak HK,

Iya, Cuma satu tombol ON\OFF.

TerimaKasih,

Pada Jumat, 22 Mei 2015 15:42, "Hendrik Karnadi hendrikkarnadi@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:

Jadi tombolnya satu mas Toby?

Sent from Samsung Mobile

-------- Original message --------
From: "Toby kenzo tobykenzo@yahoo.co.id [belajar-excel]"
Date:22/05/2015 3:35 PM (GMT+07:00)
To: belajar-excel@yahoogroups.com
Subject: Bls: [belajar-excel] Cara membuat jam digital pada excel

Dear Hendry,

1. Buat Module baru dalam VBA,kemudian COPAS program di bawah ini:


Dim RunClk As Boolean
Sub RunPauseClk()
RunClk = Not (RunClk)
Do While RunClk = True
DoEvents
Range("A2") = TimeValue(Now)
Loop
End Sub

2. Buat tombol pd sheet1 dan masukan macronya untuk START/STOP.

TerimaKasih.











Pada Jumat, 22 Mei 2015 9:47, "HENDRY MAHMUD hendrymahmud@yahoo.com [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:

Mohon petunjuk,
gimana membuat jam digital pada excel, baik menggunakan macro atau module atau formula di excel.

- jam digital tersebut dapat berjalan secara langsung (itu lebih baik)

- atau jam digital tersebut dijalankan dengan menggunakan perintah "tombol start/stop".

terima kasih atas petunjuk dan bantuannya.

Regards,

Hendry Mahmud
Mobile : +6281343738898
E-mail : hendrymahmud@hotmail.com, hendrymahmud@yahoo.com, henrymahmud@gmail.com
Pin BlackBerry : 2BA82F62

Dikirim dari BlackBerry 10

Fri May 22, 2015 3:36 am (PDT) . Posted by:

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

Hai BeExceller,

Dengan methods timer yang diajukan Pak Heru, perlu dipastikan ada proses
penghentiannya. Misalnya sebelum workbook ditutup atau ketika dipencet
tombol tertentu.

Prosedur Pak Heru :
Sub *Re_calculate*()

Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="*Re_calculate*",
schedule:=*True*
Calculate

End Sub

perlu prosedur stop, misal diberi nama *StopTimernya*
public sub *stoptimernya*()
Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="
*Re_calculate*", schedule:=*false*
end sub

*** Perhatikan *setiap* bagian yang diberi warna

Kemudian, pada sebuah tombol untuk stop timer, assign atau panggil prosedur
bernama *StopTimernya*
Atau pada event beforeclose milik thisworkbook diisi dengan script
memanggil prosedur *StopTimernya*

*Penggunaan methods timer tidak akan mengganggu proses apapun di Excel
selain menulis script VBA. Tapi bisa mengakibatkan crash bila lupa tidak
di-stop.*
Jadi berhati-hati ya...
Tapi, jika di worksheet lain atau workbook lain yang terbuka dalam instansi
Excel yang sama memiliki formula yang merujuk ke hasil kerja di timer
(prosedur di atas), maka nilainya akan ikut berubah.
Coba saja begini :
> prosedur di atas menulis di range a1 setiap 1 detik diworkbook bernama A
misalnya.
> jalankan prosedur di atas.
> dari menu file milik Excel, buat workbook baru atau buka workbook
lainnya. Misal diberi nama workbook B
> di sebuah sheet di workbook B, buat formula yang merujuk ke workbook A
sheet ke-1 dalam tab sheet, pada range a1 (merujuk ke nilai yang diset
prosedur timer di atas)
> lihat hasilnya
> coba juga jika di sheet yang berbeda di workbook A dibuat formula yang
merujuk ke sheet1 di workbook a pada range a1

Jika workbook berisi banyak formula, penggunaan Calculate dalam prosedur
Pak Heru bisa memicu proses kalkulasi. Bisa jadi akan terasa memperlambat
kinerja Excel. Ada baiknya proses calculate diganti dengan menulis nilai
tertentu ke dalam cells. Misalnya diubah menjadi seperti ini :

Sub *Re_calculate*()
*thisworkbook.sheets(1).range("a1").value=now*
Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="*Re_calculate*",
schedule:=*True*
'Calculate '--> di off-ken

End Sub

Cara lainnya adalah menggunakan klausa DoEvents dalam suatu loop seperti
script Pak Toby.
Dim RunClk As Boolean '--> variabel dengan scope module

Sub RunPauseClk()
RunClk = Not (RunClk)
Do While RunClk = True
DoEvents
Range("A2") = TimeValue(Now)
Loop
End Sub
Yang perlu dipertimbangkan adalah karakteristik Excel dalam me-running
suatu runtime. Seluruh proses runtime VBA akan dihentikan ketika user
menginput sesuatu dalam cells, berpundah sheet, dan berbagai hal lain.
Silakan dicoba saat prosedur loop di atas di-run lalu mengubah isi suatu
cells atau berpindah sheet. Selain itu, pembuatan workbook baru oleh user
melalui menu dalam Excel juga akan menghentikan proses runtime.

*Biasanya *(biasanya loh ya, tapi sering sekali jarang tidak terjadi)
proses doevents akan membuat user tidak bisa berpindah ke workbook lain
yang ada dalam 1 instansi Excel yang sama. Contoh :
Workbook A dibuka dan diisi dengan prosedur di atas tapi jangan dijalankan
dulu.
Kemudian *melalui menu file open milik Excel*, buka workbook B.
Kembali ke workbook A dan jalankan prosedur di atas. Lalu coba pindah ke
workbook B.

So,
Setiap methods memiliki karakteristik yang harus disesuaikan pemilihan
penggunaannya agar sesuai kebutuhan.

Wassalam,
Kid

On Fri, May 22, 2015 at 6:35 PM, Toby kenzo tobykenzo@yahoo.co.id
[belajar-excel] <belajar-excel@yahoogroups.com> wrote:

>
>
> Dear Hendry,
>
> 1. Buat Module baru dalam VBA,kemudian COPAS program di bawah ini:
>
>
> Dim RunClk As Boolean
> Sub RunPauseClk()
> RunClk = Not (RunClk)
> Do While RunClk = True
> DoEvents
> Range("A2") = TimeValue(Now)
> Loop
> End Sub
>
> 2. Buat tombol pd sheet1 dan masukan macronya untuk START/STOP.
>
> TerimaKasih.
>
>
>
>
>
>
>
>
>
>
>
>
>
> Pada Jumat, 22 Mei 2015 9:47, "HENDRY MAHMUD hendrymahmud@yahoo.com
> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>
>
>
> Mohon petunjuk,
> gimana membuat jam digital pada excel, baik menggunakan macro atau module
> atau formula di excel.
>
> - jam digital tersebut dapat berjalan secara langsung (itu lebih baik)
>
> - atau jam digital tersebut dijalankan dengan menggunakan perintah "tombol
> start/stop".
>
> terima kasih atas petunjuk dan bantuannya.
>
> Regards,
>
> Hendry Mahmud
> Mobile : +6281343738898
> E-mail : hendrymahmud@hotmail.com, hendrymahmud@yahoo.com,
> henrymahmud@gmail.com
> Pin BlackBerry : 2BA82F62
>
> Dikirim dari BlackBerry 10
>
>
>
>

Fri May 22, 2015 3:55 am (PDT) . Posted by:

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

Sorry, koreksi...

bagian :
Selain itu, pembuatan workbook baru oleh user melalui menu dalam Excel juga
akan menghentikan proses runtime.
seharusnya :
Selain itu, pembuatan workbook baru oleh user melalui menu dalam Excel juga
akan menghentikan proses runtime lalu menutup workbook baru dengan close
(bukan close window)

bagian :
Lalu coba pindah ke workbook B.
seharusnya :
Lalu coba pindah ke workbook B tanpa menu Switch Window

2015-05-22 20:28 GMT+10:00 Mr. Kid <mr.nmkid@gmail.com>:

> Hai BeExceller,
>
> Dengan methods timer yang diajukan Pak Heru, perlu dipastikan ada proses
> penghentiannya. Misalnya sebelum workbook ditutup atau ketika dipencet
> tombol tertentu.
>
> Prosedur Pak Heru :
> Sub *Re_calculate*()
>
> Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="
> *Re_calculate*", schedule:=*True*
> Calculate
>
> End Sub
>
> perlu prosedur stop, misal diberi nama *StopTimernya*
> public sub *stoptimernya*()
> Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="
> *Re_calculate*", schedule:=*false*
> end sub
>
> *** Perhatikan *setiap* bagian yang diberi warna
>
> Kemudian, pada sebuah tombol untuk stop timer, assign atau panggil
> prosedur bernama *StopTimernya*
> Atau pada event beforeclose milik thisworkbook diisi dengan script
> memanggil prosedur *StopTimernya*
>
>
> *Penggunaan methods timer tidak akan mengganggu proses apapun di Excel
> selain menulis script VBA. Tapi bisa mengakibatkan crash bila lupa tidak
> di-stop.*
> Jadi berhati-hati ya...
> Tapi, jika di worksheet lain atau workbook lain yang terbuka dalam
> instansi Excel yang sama memiliki formula yang merujuk ke hasil kerja di
> timer (prosedur di atas), maka nilainya akan ikut berubah.
> Coba saja begini :
> > prosedur di atas menulis di range a1 setiap 1 detik diworkbook bernama A
> misalnya.
> > jalankan prosedur di atas.
> > dari menu file milik Excel, buat workbook baru atau buka workbook
> lainnya. Misal diberi nama workbook B
> > di sebuah sheet di workbook B, buat formula yang merujuk ke workbook A
> sheet ke-1 dalam tab sheet, pada range a1 (merujuk ke nilai yang diset
> prosedur timer di atas)
> > lihat hasilnya
> > coba juga jika di sheet yang berbeda di workbook A dibuat formula yang
> merujuk ke sheet1 di workbook a pada range a1
>
>
> Jika workbook berisi banyak formula, penggunaan Calculate dalam prosedur
> Pak Heru bisa memicu proses kalkulasi. Bisa jadi akan terasa memperlambat
> kinerja Excel. Ada baiknya proses calculate diganti dengan menulis nilai
> tertentu ke dalam cells. Misalnya diubah menjadi seperti ini :
>
> Sub *Re_calculate*()
> *thisworkbook.sheets(1).range("a1").value=now*
> Application.OnTime Now + TimeValue("*00:00:01*"), procedure:="
> *Re_calculate*", schedule:=*True*
> 'Calculate '--> di off-ken
>
> End Sub
>
>
> Cara lainnya adalah menggunakan klausa DoEvents dalam suatu loop seperti
> script Pak Toby.
> Dim RunClk As Boolean '--> variabel dengan scope module
>
> Sub RunPauseClk()
> RunClk = Not (RunClk)
> Do While RunClk = True
> DoEvents
> Range("A2") = TimeValue(Now)
> Loop
> End Sub
> Yang perlu dipertimbangkan adalah karakteristik Excel dalam me-running
> suatu runtime. Seluruh proses runtime VBA akan dihentikan ketika user
> menginput sesuatu dalam cells, berpundah sheet, dan berbagai hal lain.
> Silakan dicoba saat prosedur loop di atas di-run lalu mengubah isi suatu
> cells atau berpindah sheet. Selain itu, pembuatan workbook baru oleh user
> melalui menu dalam Excel juga akan menghentikan proses runtime.
>
> *Biasanya *(biasanya loh ya, tapi sering sekali jarang tidak terjadi)
> proses doevents akan membuat user tidak bisa berpindah ke workbook lain
> yang ada dalam 1 instansi Excel yang sama. Contoh :
> Workbook A dibuka dan diisi dengan prosedur di atas tapi jangan dijalankan
> dulu.
> Kemudian *melalui menu file open milik Excel*, buka workbook B.
> Kembali ke workbook A dan jalankan prosedur di atas. Lalu coba pindah ke
> workbook B.
>
>
> So,
> Setiap methods memiliki karakteristik yang harus disesuaikan pemilihan
> penggunaannya agar sesuai kebutuhan.
>
> Wassalam,
> Kid
>
>
>
> On Fri, May 22, 2015 at 6:35 PM, Toby kenzo tobykenzo@yahoo.co.id
> [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>>
>>
>> Dear Hendry,
>>
>> 1. Buat Module baru dalam VBA,kemudian COPAS program di bawah ini:
>>
>>
>> Dim RunClk As Boolean
>> Sub RunPauseClk()
>> RunClk = Not (RunClk)
>> Do While RunClk = True
>> DoEvents
>> Range("A2") = TimeValue(Now)
>> Loop
>> End Sub
>>
>> 2. Buat tombol pd sheet1 dan masukan macronya untuk START/STOP.
>>
>> TerimaKasih.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Pada Jumat, 22 Mei 2015 9:47, "HENDRY MAHMUD hendrymahmud@yahoo.com
>> [belajar-excel]" <belajar-excel@yahoogroups.com> menulis:
>>
>>
>>
>> Mohon petunjuk,
>> gimana membuat jam digital pada excel, baik menggunakan macro atau module
>> atau formula di excel.
>>
>> - jam digital tersebut dapat berjalan secara langsung (itu lebih baik)
>>
>> - atau jam digital tersebut dijalankan dengan menggunakan perintah
>> "tombol start/stop".
>>
>> terima kasih atas petunjuk dan bantuannya.
>>
>> Regards,
>>
>> Hendry Mahmud
>> Mobile : +6281343738898
>> E-mail : hendrymahmud@hotmail.com, hendrymahmud@yahoo.com,
>> henrymahmud@gmail.com
>> Pin BlackBerry : 2BA82F62
>>
>> Dikirim dari BlackBerry 10
>>
>>
>>
>>
>
>

Fri May 22, 2015 7:07 am (PDT) . Posted by:

"Toby kenzo" tobykenzo

Dear BeExceller,

Tambahan dari saya jika menggunakan Timer Method:
1.Jika dilihat dalam clock usage di system computer pd saat penggunaan timer method tampak jelas clock pada computer begitu cepat bekerja.
2.Terjadinya crush pd program lain bisa terjadi karena kemungkinan dlm eksekusi program terjadi unsyncron time pd proses pengisian RAM.
3.Jika kita menggunakan timer method,kita harus jeli (logika kita harus bermain) dalam mengontrol input maupun output dari program lain yg kita gunakan.
4.OS yg kita gunakan dan speed clock pd prosesor yg kita gunakan juga harus di perhatikan dlm penggunaan timer method.
5.Gunakan timer method hanya untuk beberapa kontrol saja jika kita tidak menginkan terjadinya crush.

TerimaKasih.

Sent from Yahoo Mail on Android

Fri May 22, 2015 7:07 am (PDT) . Posted by:

"Toby kenzo" tobykenzo

Dear BeExceller,

Tambahan dari saya jika menggunakan Timer Method:
1.Jika dilihat dalam clock usage di system computer pd saat penggunaan timer method tampak jelas clock pada computer begitu cepat bekerja.
2.Terjadinya crush pd program lain bisa terjadi karena kemungkinan dlm eksekusi program terjadi unsyncron time pd proses pengisian RAM.
3.Jika kita menggunakan timer method,kita harus jeli (logika kita harus bermain) dalam mengontrol input maupun output dari program lain yg kita gunakan.
4.OS yg kita gunakan dan speed clock pd prosesor yg kita gunakan juga harus di perhatikan dlm penggunaan timer method.
5.Gunakan timer method hanya untuk beberapa kontrol saja jika kita tidak menginkan terjadinya crush.

TerimaKasih.

Sent from Yahoo Mail on Android

Fri May 22, 2015 11:34 pm (PDT) . Posted by:

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

Penggunaan loop berisi doevents untuk menjadi proses timer perlu dipastikan
tidak ada proses pindahin cells dengan cara di drag n drop (di email tempo
hari yang ditulis pindahin sheet ya... koreksi lagi, pindahin cells dan
khusus dengan cara drag n drop).

Untuk berhentinya runtime karena pengubahan nilai cells (ini khusus
pengubahan nilai cells dengan cara entry data, sehingga memerlukan
pengaksesan formula bar yang disertai update nilai [enter atau pindah cell
sktif ke cell lain]), biasanya bisa diatasi dengan menambahkan trap error
berbunyi :
on error resume next
tepat sesaat sebelum loop berisi doevents
dan pengembalian trap error setelah blok loop dengan scripts :
err.clear
on error goto 0
hanya saja, saya ndak tahu apa dampaknya bagi prosedur lainnya (jika dalam
file tersebut juga ada prosedur lainnya yang perlu dijalankan) akibat trap
error tersebut.

Penggunaan loop sebagai pembentuk timer akan selalu memakan resources
komputer. Biasanya hal ini dikurangi dengan memasang proses sleep
memanfaatkan fungsi API bernama Sleep. Untuk aplikasi Excel, pada proses
timer seperti ini masih akan terasa nyaman jika nilai sleep diset sekitar 1
sampai 50 (satuan fungsi ini adalah milidetik). Dengan demikian, tidak akan
tampak kesan lag-nya. Fungsi Sleep ini diletakkan tepat sebelum doevents
setelah proses-proses yang dijalankan.

Contoh pada script Pak Toby tempo lalu, berarti bisa menjadi :
private declare sub sleep lib "kernel32.dll" (byval dwmilliseconds as long)
private RunClk As Boolean '--> variabel dengan scope module, bisa jga
di set scope public

Sub RunPauseClk()
RunClk = Not (RunClk)
Do While RunClk = True
thisworkbook.sheets("namasheetnya").Range("A2").value =
TimeValue(Now)
sleep 10 'diminta sleep 10 milidetik
DoEvents
Loop
End Sub

Kalau kemungkinannya si file nanti digunakan oleh berbagai macam office
termasuk office 64bit, ubah baris deklarasi api function menjadi :
#if vba7 and win64 then
private declare *ptrsafe* sub sleep lib "kernel32.dll" (byval
dwmilliseconds as *longlong*)
#else
private declare sub sleep lib "kernel32.dll" (byval dwmilliseconds as
*long*)

Tidak ada komentar:

Posting Komentar