Hai Nurani, Methods OnTime : *Application.OnTime Method* Schedules a procedure to be run at a specified time in the future (either at a specific time of day or after a specific amount of time has passed).
*Syntax* *expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)* *expression* A variable that represents an *Application* object. *Parameters* *Name* *Required/Optional* *Data Type* *Description* *EarliestTime* Required *Variant* The time when you want this procedure to be run. *Procedure* Required *String* The name of the procedure to be run. *LatestTime* Optional *Variant* The latest time at which the procedure can be run. For example, if *LatestTime* is set to *EarliestTime* + 30 and Microsoft Excel is not in Ready, Copy, Cut, or Find mode at *EarliestTime* because another procedure is running, Microsoft Excel will wait 30 seconds for the first procedure to complete. If Microsoft Excel is not in Ready mode within 30 seconds, the procedure won’t be run. If this argument is omitted, Microsoft Excel will wait until the procedure can be run. *Schedule* Optional *Variant* *True* to schedule a new OnTime procedure. *False* to clear a previously set procedure. The default value is *True*. *Remarks* Use Now + TimeValue(time) to schedule something to be run when a specific amount of time (counting from now) has elapsed. Use TimeValue(time) to schedule something to be run a specific time. Jadi, baris kode berikut : Application.OnTime Now + TimeValue("00:00:01"), procedure:="Timer", schedule:=True artinya, Excel akan menjalankan prosedur bernama 'Timer' (Anda sudah punya prosedur ini belum? Prosedurnya bisa diakses dari mana saja atau tidak?) yang terjadwal [Schedule bernilai TRUE] pada 1 detik [TimeValue("00:00:01")] setelah [+] waktu saat ini [Now] Jadi, buatlah sebuah prosedur ber-scope *public* (supaya bisa diakses darimana saja) di sebuah general module. Misal bernama *MulaiTimernya*. Isi prosedur tersebut dengan perintah : Sheet1.Range("G8").Value = Now Application.OnTime Now + TimeValue("00:00:01"), procedure:=" *MulaiTimernya*", schedule:=*True* Lalu, buat juga prosedur ber-scope *public *(supaya bisa diakses darimana saja) di sebuah general module untuk menghentikan timer yang dijalankan oleh si prosedur *MulaiTimernya*, misal prosedur penghentinya bernama *HentikanTimernya*. Isi prosedur tersebut dengan perintah : Application.OnTime Now + TimeValue("00:00:01"), procedure:=" *MulaiTimernya*", schedule:=*false* Ketika membutuhkan pengaktifan timernya, panggil prosedur bernama *MulaiTimernya* Ketika membutuhkan penghentian timernya, panggil prosedur bernama *HentikanTimernya* Silakan diatur sendiri ya... -------------------------------- Terkadang, menggunakan sebuah variabel bertipe Boolean yang ber-scope public juga bermanfaat. Misal, disebuah general module dideklarasikan variabel status schedule si timer dengan scope public Public *bJalankanTimer *as boolean Lalu, dibuat sebuah prosedur ber-scope public berisi proses dengan methods OnTime, seperti prosedur bernama MyTimerNih public sub *MyTimerNih*() if *bJalankanTimer* then Sheet1.Range("G8").Value = Now endif Application.OnTime Now + TimeValue("00:00:01"), procedure:="*MyTimerNih*", schedule:=*bJalankanTimer* end sub Di bagian yang membutuhkan pengaktifan timer, diperintahkan bergini : *bJalankanTimer*=true *MyTimerNih* Sedangkan di bagian yang membutuhkan stop timer, diberi perintah begini : * bJalankanTimer*=false --------------------------- Yang lebih jarang lagi yang begini : Dengan kemudahan penggunaan input parameter, bisa disusun prosedur pengatur timer seperti prosedur berikut : public sub *TimernyaSiKid*(optional bAktifkan as boolean=true) if bAktifkan then Sheet1.Range("G8").Value = Now endif Application.OnTime Now + TimeValue("00:00:01"), "*TimernyaSiKid*", schedule:=bAktifkan end sub Lalu dibagian yang membutuhkan pengaktifan timer diberi perintah untuk memanggil si prosedur timernya. Dengan contoh prosedur di atas, seperti begini bunyi perintah pengaktifannya : *TimernyaSiKid* Sedangkan di bagian yang membutuhkan penghentian timer, diberi perintah untuk memanggil si prosedur timernya dengan menyertakan nilai parameter bAktifkan yang bernilai FALSE. Dengan contoh prosedur di atas, bunyinya begini : *TimernyaSiKid* FALSE ------------------------------ Begitulah kira-kiranya... Pokoke diambil asiknya aja... Wassalam, Kid On Tue, May 26, 2015 at 9:37 AM, nurani alkena alkenanur...@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com> wrote: > > > Mr... saya sudah coba prosedur diatas. > tetapi saya ingin menambahkan modifikasi pada timernya... > ketika saya protect worksheet maka timer aktif. > tetapi ketika unprotect worksheet maka timer tidak aktif > saya sudah coba prosedurnya seperti ini tapi gagal trs. > > > mohon dibetulkan > > Sub Workbook_Activate() > Sheet1.Protect ("123") > > If Sheet1.Protect("123") = True Then > Sheet1.Range("G8").Value = Now > Application.OnTime Now + TimeValue("00:00:01"), procedure:="Timer", > schedule:=True > End If > > If Sheet1.Unprotect("123") = True Then > Sheet1.Range("G8").Value = Now > Application.OnTime Now + TimeValue("00:00:01"), procedure:="Timer", > schedule:=False > End If > End Sub > > > > > On Monday, May 25, 2015 11:42 PM, "nurani alkena alkenanur...@yahoo.com > [belajar-excel]" <belajar-excel@yahoogroups.com> wrote: > > > > sudah. mr terima kasih. maaf blm sempat balas. > > saya tertarik dengan fitur jam... > > saya coba pake rumus manual =now() pada cell tetap tidak berubah. kecuali > kalau saya close kemudian open lg. baru menyesuaikan jam saat ini. memang > kelemahannya seperti itu. bagaimana untuk mengatasinya sesuai dengan fitur > jam pada umumnya. thanks > > > > On Monday, May 25, 2015 10:35 PM, "Toby kenzo tobyke...@yahoo.co.id > [belajar-excel]" <belajar-excel@yahoogroups.com> wrote: > > > > Dear Ani, > Yg kemarin itu gimana,udah clearkah.. > Di emai2 sebelumnya sudah di jelaskan cara pembuatan jam digital dlm > worksheet begitupula kelemah2annya,coba kamu check lagi email2 sebelumnya. > TerimaKasih. > Sent from Yahoo Mail on Android > <http://overview.mail.yahoo.com/mobile/?.src=Android> > > ------------------------------ > * From: * alkenanur...@yahoo.com [belajar-excel] < > belajar-excel@yahoogroups.com>; > * To: * <belajar-excel@yahoogroups.com>; > * Subject: * Re: [belajar-excel] Cara membuat jam digital pada excel > * Sent: * Mon, May 25, 2015 2:30:14 PM > > > sorry mr. mau tanya > sifat time di worksheet excel tetap ya ? > artinya time tersebut berubah ketika kita membuka file tersebut kembali? > kalo mau buat jam di worksheet ms. excel pengkodeannya bagaimana ??? > terima kasih > > > > > > >