Dear Mr. Kid,
Terima kasih atas penjelasan dan rumusya.
Untuk pertanyaan No. 1 saya telah mencoba rumusnya sbb:
Dim iRow As Long, Reg As Range, oCtrl As Control
Dim wbkA As Workbook, wbkDB As Workbook
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\DATABASE.Xls")
wbkA.Activate
wbkDB.Worksheets("Registrasi").Unprotect "........."
Set Reg = wbkDB.Worksheets("Registrasi").Cells(1)
Dan diakhir rumusnya saya pakai rumus
wbkDB.Worksheets("Registrasi").Protect "........."
End Sub
tapi hasilnya tidak bisa.
Tetapi saya harus menggunakan lagi rumus:
Dim iRow As Long, Reg As Range, oCtrl As Control
Dim wbkA As Workbook, wbkDB As Workbook
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\DATABASE.Xls")
wbkA.Activate
wbkDB.Worksheets("Registrasi").Protect "........."
End Sub
Sehingga proses penyimpanannya lebih lama (loadingnya lebih lama)...???
Untuk pertanyaan No 2, saya masih belum dapat mengerti.
Yang saya maksudkan adalah: Bagaimana cara / rumusnya jika pada File "DATABASE"
tsb saya buat User Form yang jika saya Click dapat connect ke file
"REGISTRASI.Xls"...???
Sedangkan untuk pertanyaan No. 3, saya menggunakan rumus sbb:
Private Sub UserForm_Initialize()
Dim iRow As Long, Reg As Range, oCtrl As Control
Dim wbkA As Workbook, wbkDB As Workbook
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\DATABASE.Xls")
wbkA.Activate
Dim i As Long, TbHeigh As Long, TbWidth
Set MemMaster = wbkDB.Worksheets("Registrasi").Cells(1).CurrentRegion
TbHeigh = MemMaster.Rows.Count - 1
TbWidth = MemMaster.Columns.Count - 1
Set MemMaster = MemMaster.Offset(1, 0).Resize(TbHeigh, TbWidth)
Application.EnableEvents = False
With Cbonoregpinjam
.ColumnCount = 2
.BoundColumn = 1
For i = 1 To TbHeigh
.AddItem
.List(i - 1, 0) = MemMaster(i, 1)
Next i
End With
Application.EnableEvents = True
txttglkembali = Format(Date, "mm/dd/yyyy")
txtjamkembali = Format(Time, "h:mm")
Alhamdulillah, rumus tersebut sudah sesuai dengan yang saya harapkan.
Hanya saja jika diakhir rumus saya tambah dengan rumus :
If MsgBox("DATA ANDA TELAH DISIMPAN. TAMBAH...???", 32 + 4, "KONFIRMASI") =
vbYes Then
Else
Unload Me
End If
End Sub
Dan selanjutnya saya Click "YES", kenapa jadi Error...???
Tapi jika saya Click "NO", so far so good.
Mengenai rumus:
Dim iRow As Long, Reg As Range, oCtrl As Control
Dim wbkA As Workbook, wbkDB As Workbook
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\DATABASE.Xls")
wbkA.Activate
Bisa atau tidak jika kita tidak menggunkan rumus:
Set wbkDB = Workbooks.Open(wbkA.Path & "\DATABASE.Xls")
Maksudnya bagaimana caranya jika File "DATABASE.Xls" tersebut dibiarkan dalam
keadaan Stand By (tetap terbuka)...???
Mohon berkenan penjelasannya.
Terima kasih.
Regards,
Harry
________________________________
Dari: Kid Mr. <[email protected]>
Dikirim: Kamis, 9 Februari 2012 9:57
Dear Harry,
1. Proteksi sheet :
Sheets("nama sheetnya").protect "passwordnya" 'protect
Sheets("nama sheetnya").unprotect "passwordnya" 'unprotect
Ketika akan olah sheet terproteksi, lakukan unprotect lebih dulu.
Usai mengolah sheet terproteksi, lakukan protect lagi.
2. Sebaiknya file database hanya berisi data saja. Seluruh form input
(interface input) seoerti pinjam, kembali, perpanjang, beli, bayar, dsb
diletakkan pada file terpisah, misal file Input. Untuk laporan (output) seperti
laporan bulanan, daftar peminjam yang telat pengembaliannya, dsb, juga
diletakkan di file terpisah, misal di file Output.
Untuk dapat memanfaatkan data di workbook database sheet database, maka
workbook database dibuka lebih dulu. Untuk keindahan, bisa saja workbook
database disembunyikan. Yang penting, jangan lupa untuk menutup file database
ketika usai menggunakannya.
Misal, sebuah form butuh data dari sheet database, maka saat init form, lakukan
buka file database. Bila perlu, sembunyikan file database. Ketika form ditutup,
pada event query close bisa dilakukan penutupan file database.
Contoh buka dan sembunyikan file :
'letakkan di bagian deklarasi variabel module
Public wbkApp as workbook, wbkDB as workbook
'contoh routine buka dan sembunyikan file excel
public sub BukaDanSembunyi()
application.screenupdating=false
set wbkapp=thisworkbook
set wbkdb=workbooks.open "d:\data\database.xls"
wbkapp.activate
windows(wbkdb.name).visible=false
application.screenupdating=true
end sub
'contoh tampilkan kembali yang dihide
public sub TampilkanLagiSiFile()
windows(wbkdb.name).visible=true
end sub
'contoh tutup file
public sub TutupFileExcel()
wbkdb.close false 'jika tidak mau disimpan pengubahan datanya
end sub
3. Sayangnya listing code yang disertakan tidak menampakkan penggunaan sheet
database.
Jika file database telah dibuka, mestinya seluruh kegiatan (non formula links)
yang membutuhkan data di sheet database pada file database tersebut dapat
dilakukan seperti :
'contoh init variabel sheet database di file database
dim shtDB as worksheet
set shtdb=wbkdb.sheets("database")
'contoh init variabel range di sheet database pada file database
dim rngDB as range
set rngdb=wbkdb.sheet("database").range("a1").currentregion
Wassalamualaikum Wr. Wb.
Kid.