Di sheeta Excel -versus- di VBA ada beberapa fungsi yg tujuannya sama
tetapi NAMANYA berbeda, hal ini sebaiknya difahami
ada juga yg nama dan penggunaaannya SAMA (misal LEFT, MID)
*Di sheet:*
Fungsi DATE
=DATE(2001,12,30) menghasilkan data tanggal 31 des 2001
=TIME(23,15,04) menghasilkan data TIME pukul 23:15:04
kalau *di VBA *nama Fungsinya lain
DateSerial(2001, 12, 30)
TimeSerial(23, 15, 04)
Di VBA, juga ada fungsi DATE, tetapi menghasilkan TGL System
(tgl komputer yg tiap hari berubah); berarti funsgsi DATE di VBA
sama dengan fungsi TODAY() di sheet
... dan masih banyak lagi
Pertanyaan anda kita anggap bahwa variable *TANGGAL_EXPIRED* adalah
berisi sebuah *nilai tanggal* (satu data), misal *12 maret 2012* atau
nilai serialnya = *40980*
Anda memasukkan s*atu data* tsb ke dalam fungsi yg memerlukan *3 Arguments*
*If Date = DateSerial(40980) Then*
Saya kira: hasilnya error ( = Argument not optional !)
Atau mungkin anda menganggap contoh tadi terlalu berputar putar, (bahwa
untuk menentukan tgl expired diperlukan *tanggal penyerahan*) ??
-- itu karena si penanya ingin hari expired ditentukan berdasarkan
"DALAM JANGKA 60 HARI"
( yg tidak bisa ditentukan tanggalnya kecuali diketahi tgl MULAInya)
- kalau keperluannya : "Mulai *TGL SEKIAN *tidak berlaku!!"
maka logika anda bisa dipakai, tetapi....
setiap saat akan menyerahkan file kepada pihak lain anda harus mengubah
lagi makronya.
Misal
Expire date = 7 Mare 2012
kalau file diserahkan tgl 8 maret 2012, maka begitu dierahkan file sudah
expired ??!!
maka sebelum menyerahkan filt tsb; anda harus mengedit makronya lebih
dulu.
Variable "TANGGAL_EXPIRED" harus di ubah / diisi data baru = suatu data
tanggal
yg nilainya 60 hari setelah saat penyerahan file...
Mohon dicoba prosedur dibawah ini dijalankan..
Ditanggung : sebelum dijalankan pun, VBA sudah menunjuk baris ke5
sebagai "kesalahan pengisian Argument")
Sub DateSerialKokDiisiDataDate()
Dim TGL_EXPIRED As Date
TGL_EXPIRED = Date + 60
MsgBox Format( TGL_EXPIRED , "#,##0")
If Date = DateSerial(*TGL_EXPIRED*) Then
MsgBox "benar"
Else
MsgBox "apaan tuh"
End If
End Sub
Tgl Expired tidak akan pernah dicapai, karena setiap hari berubah maju 1
hari.
sesuai nilai Date+60 (nila Date setiap hari berubah )
Sebenarnya saya tidak mau repot-repot terlalu banyak omong spt ini, (hanya
untuk
menanggapi petanyaan / sanggahan anda yg hanya berisi 3 baris pendek)
tetapi
*pemrograman memang memerlukan hal yg jelas dan logis.*
(Sedangkan sebetulnya anda tidak perlu tanya tetapi BISA mempraktekkan
langsung
pertanyaan anda itu di module VBE anda...)
wassalam
*o'Seno*
*
*
*
*
*
*
*
*
Penjelasan (selain di help > VBA Fungsi DateSerial) juga dapat dilihar di
banyak tempat
misalnya
http://www.techonthenet.com/excel/formulas/dateserial.php
http://msdn.microsoft.com/en-us/library/bbx05d0c(v=vs.80).aspx
F1 / Excel Help
*DateSerial Function*
Returns a Variant (Date) for a specified year, month, and day.
*Syntax
DateSerial(year, month, day)*
The DateSerial function syntax has these named arguments:PartDescription*
year* Required; *Integer*. Number between 100 and 9999, inclusive, or a numeric
expression<https://mail.google.com/mail/?ui=2&view=js&name=main,tlist,ptlist&ver=FWFgjD3UWxQ.en.&am=!vzDW0GOWLR7ZQr2LwSy2xGafYDwuIbA046yKf4LL1L-bhprUyDLpZo6jiU-RGMfa2g>
. *month*Required; *Integer*. Any numeric expression.*day*Required; *Integer
*. Any numeric expression
2012/1/11 RezArt <[email protected]>
> **
>
> kalo dengan perintah
>
> If Date >= DateSerial(TANGGAL_EXPIRED) Then....
>
> bedanya apa yah? ato sama saja? lebih baik yg mana yg digunakan?
>
>