Application Volatile Pada UDF Macro VBA Excel

Application Volatile Pada VBA UDF

Secara bawaan saat kita membuat sebuah UDF ( User Defined Function) pada macro VBA Excel, UDF tersebut akan bersifat non Volatile. Apa itu Non volatile ?, non volatile berarti Fungsi akan dihitung ulang apabila ada parameter dalam fungsi tersebut yang mengalami perubahaan nilai. Sedangkan untuk kebalikannya yaitu Volatile berati fungsi akan dihitung ulang setiap kali ada perubahan atau perhitungan pada cell manapun di lembar kerja tidak tebatas pada cell parameter.

Apa sudah bisa ditangkap berbedaan dari Volatine dan Non Volatine ini? harusnya sudah ada sedikit gambaran ya. jika belum saya akan langsung berikan contoh, agar terlihat perbedaannya diantara kedua nya. Apa bedanya UDF yang menggunakan Application.Volatile dan yang tidak. yang tidak, berarti bersifat Non Volatile.

Sebelum ke Contoh, sebagai bahan, saya akan membuat sebuah Fungsi Sederhana yg membutuhkan 1 parameter Cell

 Visual Basic Editor 
Function FungsiKu(xCell As Range)
FungsiKu = xCell.Value + xCell.Offset(1, 0).Value
End Function

Fungsi diatas hanya menanbahkan Parameter xCell dengan Cell dibawah nya sama halnya seperti penambahan A + B. tetapi Cell B ini (Offset) bukan termasuk parameter, yang merupakan parameter hanya Cell A saja (xCell)

jika Fungsi ditulis seperti diatas, UDF ini bersifat Non Volatile. Artinya, Jika ada perubahan pada Cell B, UDF tidak ada di hitung ulang. bisa kita lihat cara kerja non volatile ini pada gambar dibawah ini. Perubahan nilai di A3 tidak akan mempengaruhi B2 hanya Perubahan pada A2 yang bisa mempengaruhi Kalkukasi B2.

Sekarang kita bandingkan dengan Volatile. pada Contoh Script Fungsi yang saya buat diatas kita akan tambahkan Application.volatile pada awal Fungsi, hasil perubahannya menjadi seperti ini.

Function FungsiKu(xCell As Range)
Application.Volatile
FungsiKu = xCell.Value + xCell.Offset(1, 0).Value
End Function

Seperti yang sudah saya sampaikan diatas , dengan Volatine Fungsi akan di kalkukasi setiap ada perubahan di Cell manapun tidak harus cell parameter. dan hasilnya akan menjadi seperti ini

Jadi bagaimana? sudah bisa terlihat dimana perbedaan dari keduanya? Itu lah perbedaan antara penggunaan volatile dan tidak. Terlihat bahwa dengan Volatile UDF akan terus dikalkulasi setiap ada perubahan. Hal ini bisa menjadi baik dan juga kurang baik tergantung kondisi yang dihadapi. Jadi bijak-bijak lah dalam menggunakan Fungsi Volatile.

Be the first to comment

Leave a Reply

Your email address will not be published.


*