anda sudah berusaha membuat dan  saya kira sudah berada di jalan yg benar
yaitu memanfatkan *event workbook before close*

Event ini terjadi sesaat sebelum workbook ditutup oleh sebab apapun.
Kalau anda perhatikan di situ ada Argument *Cancel* bertye data Boolean
(yaitu data yg hanya bisa bermilai TRUE atau FALSE saja)

variable Cancel ini jika anda isi = TRUE maka penutupan workbook di
batalkan,
sebaliknya jika anda isi dengan  = FALSE maka penutupan workbook dibolehkan

Jadi sesuai SYARAT yg anda ajukan, anda dapat mencbangkan dua keadaan
dengan
statement IF

IF A2 lebih besar B2
   workbook jangan ditutup
ELSE
   workbook boleh ditutup
END IF

lengkapnya seperti ini

Private Sub Workbook_BeforeClose(*Cancel* As Boolean)
   With Sheets("Sheet2")
      If .Range("A2") > .Range("B2") Then
         MsgBox "Workbook ini tidak dapat ditutup" & vbCr & _
         "karena cell A2 > B2 !", vbExclamation, ThisWorkbook.Name
         *Cancel = True*
      End If
   End With
End Sub

di situ tidak perlu diberikan pilihan ELSE (yaitu jika A2 <= B2),  lalu apa
yg harus terjadi.

karena kalau dibiarkan maka  Cancel dengan sendirinya tetap bernilai FALSE
yg berarti workbook ditutup (karena memang ada perintah ditutup
(Ingat: Event itu terjadi karena ada sesuatu yg meminta agar workbook
ditutup.)

Perlu diketahui bahwa di VBA, sebuah variable pada saat diciptakan /
 dideklarasikan
sudah punya nilai default tertentu, sesuai type nya, yaitu:

variable Bilangan (integer, long, double, single, date, dsb)  nilai
defaultnya = *0 (nol)*
variable Boolean / Logiccal : *False*
variable String : Empty (*NullString*)  (sering digambarkan  sbg :* "" *)
variable Object : *Nothing*

cmiiw...



2011/4/8 bagyo klaten <klaten.ba...@yahoo.co.id>
>
> salam excel
> terkadang kita pengin menulis data dengan sempurna
> terlampir contoh data, seharusnya B lebih besar dari A
>
> bagaimana caranya (dengan VBA) selama A masih lebih besar dari B
> maka worksheet tersebut tidak bisa ditutup
>
> Demikian... mohon pencerahannya...

Attachment: c_Worksheet tidak bisa ditutup.xlsm
Description: application/vnd.ms-excel.sheet.macroenabled.12

Reply via email to