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 <puhaba2...@yahoo.com> > ** > > kalo dengan perintah > > If Date >= DateSerial(TANGGAL_EXPIRED) Then.... > > bedanya apa yah? ato sama saja? lebih baik yg mana yg digunakan? > >