Dear Mr, Kid,
Terima kasih atas informasi rumusnya.
Setelah saya menuangkan rumus yang Bapak berikan, hasilnya ok. Tapi saya
mengalami kendala / pertanyaan sebagai berikut:
1. Pada file "DATABASE"-nya (Sheet Database) apa bisa di protect...???
2. Apakah pada file "DATABASE" tersebut bisa kita buat user Form yang dapat di
Link ke file "REGISTRASI" (Sheet ..........)...???
3. Pada program pinjam meminjam buku yang telah saya buat sebelumnya, misalnya
untuk registrasi pengembalian buku yang telah dipinjam terdapat rumus sbb:
Private Sub UserForm_Initialize()
Dim i As Long, TbHeigh As Long, TbWidth
Set MemMaster = Sheets("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")
End Sub
Private Sub Cbonoregpinjam_Change()
Dim r As Integer
If Cbonoregpinjam.ListIndex > -0 Then
r = Cbonoregpinjam.ListIndex + 1
If r > 0 Then
txtktp.Value = MemMaster(r, 2)
txtnama.Value = MemMaster(r, 3)
Tapi saya selalu gagal dalam memunculkan User Form "BUKU KEMBALI".
Pada program sebelumnya yang situasinya Sheet "DATABASE" menjadi satu kesatuan
dalam i (satu) file, rimus tersebut diatas bisa digunakan. tapi setelah Sheet
"DATABASE" saya pindahkan menjadi file yang berbada, mengapa rumus tersebut
tidak dapat difungsikan.
Masih terkait dengan pertanyaan No. 3, mohon berkenan informasi dan
rumusnya...???
Terima kasih atas berkenan informasi dan rumusnya.
Regards,
Harry
N/B:
Saya telah mencoba menggunakan rumus sbb:
Private Sub UserForm_Initialize()
Dim wbkA As Workbook, wbkDB As Workbook
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\database.xls")
tapi yang menjadi kesalahan adalah:
TbHeigh = MemMaster.Rows.Count - 1
TbWidth = MemMaster.Columns.Count - 1
________________________________
Dari: Kid Mr. <[email protected]>
Kepada: [email protected]
Dikirim: Minggu, 29 Januari 2012 22:31
Judul: Re: [belajar-excel] SIMPAN DATA USER FORM PADA FILE YANG BEDA
Dear Harry,
Pertanyaan No. 1
>> pada event click tombol Save, ubah baris kodenya menjadi :
Private Sub cmdAdd_Click()
Dim iRow As Long, Reg As Range, oCtrl As Control
'----------------------------
'Kid : 2012-01-29 : modified
'----------------------------
'deklarasi variabel workbook
Dim wbkA As Workbook, wbkDB As Workbook
'init workbooknya
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\database.xls")
wbkA.Activate
'init range database nya
Set Reg = wbkDB.Worksheets("DATABASE").Cells(1)
'----------------------------
'find first empty row in database
iRow = Reg(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'copy the data to the database
Reg(iRow, 1).Value = txtNoreg.Value
Reg(iRow, 2).Value = txtNama.Value
'clear the data / modified by Haps / 30 Jul2011
txtNoreg.Value = ""
txtNama.Value = ""
'----------------------------
'Kid : 2012-01-29 : modified
'----------------------------
'tulis jumlah record database di registrasi cell a1
wbkA.Sheets("registrasi").Range("a1").Formula =
Reg.CurrentRegion.Rows.Count - 1
'tutup database sekalian simpan
Application.DisplayAlerts = False
wbkDB.Close True
Application.DisplayAlerts = True
wbkA.Activate
'----------------------------
Unload Me
End Sub
Pertanyaan No. 2
Database yang baik tidak memiliki baris Sum atau Subtotal di baris ke
sekiannya. Akan lebih baik lagi jika tidak ada formula didalamnya.
Untuk hal ini, maka jumlah record database dapat disimpan pada sheet registrasi
cell a1 yang berada di file interface (lihat baris hijau pada no 1 di atas)
Karena jumlah record ada di sheet registrasi, maka text box txtJumlah pada form
frmJumlah diubah nilai properti Control Source-nya menjadi merujuk ke cell A1
di sheet registrasi ( =registrasi!a1 )
Manfaatkan properti application.screenupdating = true sebelum proses dimulai
dan application.screenupdating = false sebelum proses selesai untuk mengurangi
efek blink saat buka workbook.
Jika control source dari txtjumlah di kosongkan, maka buat prosedur event
initialize form dan beri baris kode :
'deklarasi variabel workbook
Dim wbkA As Workbook, wbkDB As Workbook
Application.ScreenUpdating = False
'init workbooknya
Set wbkA = ThisWorkbook
Set wbkDB = Workbooks.Open(wbkA.Path & "\database.xls")
wbkA.Activate
'tulis jumlah record database di registrasi cell a1
txtjumlah.Text =
wbkDB.Sheets("database").Range("a1").CurrentRegion.Rows.Count - 1
'tutup database sekalian simpan
Application.DisplayAlerts = False
wbkDB.Close True
Application.DisplayAlerts = True
wbkA.Activate
Application.ScreenUpdating = True
Regards,
Kid.
2012/1/29 Harry <[email protected]>
>
>Dear BeExceller,
>
>Mohon informasi dan penjelasan akan
pertanyaan saya dengan situasi dan kondisi sebabagai berikut:
>Pertanyaan No. 1
>Jika pada File “STUDI KASUS (SIMPAN
DATA USER FORM PADA FILE YANG BEDA)” terdapat 2 (dua) Sheet yaitu Sheet
“REGISTRASI”
dan Sheet “DATABASE”. Pada file tersebut, jika saya mengisi User Form pada
Sheet “REGISTRASI” otomatis tersimpan pada Sheet “DATABASE”.
>
>Pertanyaan saya adalah:
>Bagaimana caranya jika Sheet “DATABASE”
tersebut saya pindahkan pada File yang berbada Mis. File dng nama “DATABASE”.
>
>
>Pertanyaan No. 2
>Pada File “STUDI KASUS (SIMPAN DATA
USER FORM PADA FILE YANG BEDA)” Sheet “DATABASE” kolom C15 merupakan
penjumlahan dari C2 s/d C13. Jika User Form “JUMLAH” kita Click otomatis muncul
hasil penjumlahannya. Tetapi jika databasenya bertambah, kok rumusnya hilang
dan berganti dengan angka yang hasilnya tidak Up To Date (tidak sesuai dengan
hasil yang diinginkan)…???
>
>
>Mohon berkenan informasinya.
>
>Regards,
>
>
>Harry
>
>N/B:
>· Data Sekarang: File “STUDI KASUS
(SIMPAN DATA USER FORM PADA FILE YANG BEDA)” terdapat 2 (dua) Sheet yaitu Sheet
“REGISTRASI” dan Sheet “DATABASE”.
>· Data yang seharusnya: File “STUDI
KASUS (SIMPAN DATA USER FORM PADA FILE YANG BEDA)” hanya memiliki 1 (satu)
Sheet yaitu Sheet “REGISTRASI” sedangkan Sheet “DATABASE” terdapat pada file
yang berbeda yaitu File “DATABASE”
>