Dear Mr Kid,

Sudah terjawab pertanyaannya mr kid ternyata tetap kedap kedip dan saya bisa 
menggunakan excel ketika macro berjalan,,

Okeh thx ya pak,,



________________________________
 Dari: Kurei recca <[email protected]>
Kepada: "[email protected]" <[email protected]> 
Dikirim: Minggu, 30 September 2012 8:58
Judul: Bls: [belajar-excel] CODING MACRO BUNYI BEEP
 

  
Dear Mr Kid,

Saya sudah coba tapi saya ingin bertanya beberapa hal lagi nih pak

Bisa ga ketika macronya jalan, excel tetap dapat berfungsi seperti biasa ?

Misal ketika bunyi beep itu keluar saya tetap dapat melakukan aktivitas di 
workbook tersebut ?


Thx pak



________________________________
 Dari: Kurei recca <[email protected]>
Kepada: "[email protected]" <[email protected]> 
Dikirim: Minggu, 23 September 2012 13:59
Judul: Bls: [belajar-excel] CODING MACRO BUNYI BEEP
 

Makasih Mr Kid,

dicoba dulu yaa,,

thx yaa


________________________________
 Dari: Kid Mr. <[email protected]>
Kepada: [email protected] 
Dikirim: Minggu, 23 September 2012 13:37
Judul: Re: [belajar-excel] CODING MACRO BUNYI BEEP
 

  
Hai Recca,

File terlampir berisi UDF SoundWarning yang tugasnya hanya membunyikan file wav 
dengan kriteria tertentu. Mungkin kestabilannya masih harus diuji, karena hanya 
rewrite dari bahasa C++ ke VBA. Kalau yang ke VB6 bisa lebih stabil.

Untuk mewarnai blinking, diatur melalui application.timer secara tidak 
langsung. Jadi, application.timer pada file terlampir hanya mengubah suatu 
nilai konstanta secara terus menerus dari 1 menjadi 2. Ketika application.timer 
dihentikan, maka nilai konstanta diset menjadi 0. Setiap kali buka workbook, 
set pertama saat open selalu nilai konstanta bernilai 1. Nilai konstanta ini 
disimpan dalam sebuah nama range bernama '_MyTrigger_'
Nilai dalam _MyTrigger_ lah yang menjadi nilai kondisi dalam Conditional 
Formatting (CF). Jadi blinking sebenarnya dilakukan oleh si CF karena ada 
pengubahan nilai _MyTrigger_ oleh application.timer.

Jadi nanti kalau ada yang gak stabil, coba perhatikan betul, sisi blinking-nya 
ada sisi sound-nya.

Berikut gambaran tentang UDF SoundWarning

UDF SoundWarning 
 
 
 
 
 
 
 
 
 
 
Syntax =SoundWarning( kriteria_mulai_warning  ,  [pesan_warning], 
[filefullname_suara_peringatan]  ) 
 
 
 
 

 kriteria_mulai_warning diisi nilai numerik, yang bisa berupa hasil komputasi 
ekspresi tertentu 
 
 
 

 
 jika nilainya <= 0, maka SoundWarning akan menghentikan bunyi 
 
 
 

 
 jika nilainya > 0, maka SoundWarning akan memulai bunyi peringatan 
 
 
 

 [pesan_warning] teks yang akan ditampilkan ke user yang menjadi nilai hasil 
UDF ini ketika kriteria_mulai_warningbernilai >0. 

 
 teks bisa berupa hasil komputasi ekspresi tertentu 
 
 
 
 
 

 [filefullname_suara_peringatan] nama file suara yang akan dijadikan nada 
peringatan. 
 
 
 
 

 
 nama file harus tertulis lengkap beserta drive dan foldernya 
 
 
 
 

 
 bila file tidak ditentukan user atau file dari user tidak ditemukan, maka file 
default C:\Windows\Media\notify.wav akan dimainkan. 

 
 jika file tidak ditemukan, maka tidak ada suara peringatan yang dimainkan 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Result Jika nilai kriteria_mulai_warningbernilai >0, maka file suara akan 
dieksekusi menjadi suara peringatan disertai pesan teks dalam [pesan_warning] 

 Jika nilai kriteria_mulai_warningbernilai <=0, maka suara peringatan 
dihentikan dan tidak ada pesan teks yang ditampilkan 
 
 
 
 
 
 
 
 
 
 
 
 
 
Contoh pemakaian : 
 
 
 
 
 
 
 
 
 
 

 =SoundWarning(  1*(B3="a")  ,  "Cell B3 tidak boleh 'a'"   ) 
 
 
 
 
 
 
 

 
 Mainkan file default ketika isi cell B3 adalah teks 'a' (b3="a") 
 
 
 
 

 
 kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell B3 
tidak boleh 'a' 
 
 
 
 
 
 
 
 
 
 
 
 
 

 =SoundWarning(  1*(B3="a")  ,  "Cell B3 tidak boleh 'a'", 
"C:\Windows\Media\chord.wav"  ) 
 
 
 
 

 
 Mainkan file bernama chord.wavyang ada di C:\Windows\Media\  ketika isi cell 
B3 adalah teks 'a' (b3="a") 

 
 kemudian dikonversi menjadi nilai (1*) dan tampilkan pesan berbunyi : Cell B3 
tidak boleh 'a' 
 
 
 
 
 
 
 
 
 
 
 
 
 
Peringatan !!! 
 
 
 
 
 
 
 
 
 
 
1 Pastikan pada event workbook before close, baris terakhir sebelum End Sub 
diberi kode untuk menghentikan sound sebagai berikut : 

 PlaySound vbnullstring,0,9 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2 Pada pengembangan untuk memasukkan UDF SoundWarning menjadi sebuah AddIn, 
sertai dengan class pengatur Workbook agar setiap workbook yang ditutup 
menjalankan 

 PlaySound vbnullstring,0,9 
 
 
 
 
 
 
 
 
 

 kemudian pada file addin dilanjutkan dengan proses application.calculate untuk 
memicu UDF SoundWarning pada workbook yang belum tertutup 
 
 
 
 
 
 
 
 
 
 
 
 
3 Yang dimainkan biasanya file pertama yang dijumpai, tetapi hal ini masih 
belum stabil. Mungkin harus pakai midi supaya bisa bareng semua dimainkan dan 
biar ribut seperti pasar :D 
VBA Code untuk UDF SoundWarning :
Public Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" ( _
                    ByVal lpszName As String, ByVal hModule As Long, ByVal 
dwFlags As Long) As Long

Public sAddr As String

'Kid,Jakarta, 2007-01-05,rewrite for VB6 and VBA
'SoundWarning : mengeksekusi file .wav dengan suatu kondisi tertentu dan 
memberi return value teks
'butuh WinAPI function PlaySound pada winmm.dll
Public Function SoundWarning(lStartPeringatan As Long, _
                    Optional sWarning As String = "nah lo... ada yang gak pas", 
_
                    Optional sFileName As String = vbNullString) As String
    Dim sFile As String, sCallerAddr As String
    
    Application.Volatile
    If LenB(sFileName) = 0 Then
        sFile = "C:\Windows\Media\notify.wav"
    ElseIf LenB(Dir$(sFileName)) = 0 Then
        sFile = "C:\Windows\Media\notify.wav"
    Else
        sFile = sFileName
    End If
    
    sCallerAddr = Application.Caller.Address & "|"
    If lStartPeringatan < 1 Then
        sAddr = Replace$(sAddr, sCallerAddr, vbNullString)
        If LenB(sAddr) = 0 Then
            PlaySound vbNullString, 0, 9
        End If
        SoundWarning = vbNullString
    Else
        If InStr(sAddr, sCallerAddr) = 0 Then
            sAddr = sAddr & sCallerAddr
        End If
        PlaySound sFile, 0, 9
        SoundWarning = sWarning
    End If
End Function


Module yang mengatur nilai dalam nama range _MyTrigger_ :
Public lTimer As Long

Public Sub MyTrigger()
    Select Case lTimer
    Case 0
        Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger"
        StopMyTrigger
    Case 1, 2
        lTimer = 2 + (lTimer = 2)
        ThisWorkbook.Names("_MyTrigger_").Value = lTimer
        Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger"
    End Select
End Sub

Public Sub StopMyTrigger()
    Application.OnTime EarliestTime:=Now + TimeValue("00:00:01"), _
                        Procedure:="MyTrigger", _
                        Schedule:=False
End Sub

Pengaturan saat open workbook :
Private Sub Workbook_Open()
    lTimer = 1
    ThisWorkbook.Names("_MyTrigger_").Value = lTimer
    MyTrigger
End Sub

Pengaturan saat workbook akan di close (before close)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    lTimer = 0
    ThisWorkbook.Names("_MyTrigger_").Value = lTimer
    MyTrigger

    PlaySound vbNullString, 0, 9
End Sub

Moga-moga gak bikin crash ya...

Wassalam,
Kid.



2012/9/23 Kurei recca <[email protected]>

 
>  
>Salam Para Master Excel,
>
>Ceritanya saya ingin membuat suatu coding dengan kondisi Jika Cell A1 
>bertuliskan kata "TRUE" maka akan ada bunyi beep berulang selama 20 detik or 
>periode tertentu dan Cell Tersebut kelap kelip berwarna kuning dan putih 
>selama 20 detik tersebut.
>
>Kira2 bagaimana ya codingnya,,?
>
>Mohon Pencerahannya...
>
>Best Regards
>
>
>
>





 

Kirim email ke