(men)Dongeng lagi ni yee ?..
Perintah yg ada di dalam prosedur EVENT ini akan JALAN SENDIRI
(ostosmastis)
KALAU SHEET (yg di modulenya ada "beginian" nya) menderita *di DeActivate*
(=baru saja aktif lalu si user atau program mengaktifkan sheet lain)
Maksodnya = agar perintah didalamnya (mengupdate nilai MAX bagi
SpinButton)
terjalankan otomatis ketika ada orang membuka dan mengedit data di sheet
DATA, lalu
meninggalkannya, gitu loch...
Private Sub Worksheet_Deactivate()
disiapkan 2 peubah di memory (mem. variables) bernama dTabel berjenis
kelamin Range
dan T berjeniskelamin Long (bilangan Long Integer)
Dim dTabel As Range, T As Long
Object Range dTabel yg saat itu masih sebagai Nothing sekarang di Set
(di-Assigned
/ DIDAPUK / di SURUH MENJADI: Perwakilan Range D4 yg diperluas seluas
data yg dapat dijangkau tanpa terhalang baris/kolom kosong (currentregion),
tapiii di geser
ke bawah dua langkah kolom
( artinya dua baris teratas pada current region yg didongengkan tadi = tidak
dipakai/ tidak
termasuk range yg bernama varable dTabel, & ketambahan 2 baris kosong di
bawahnya
(lha namanya 'kan GESER (offset) tanpa di ReSIZE)
Set dTabel = Me.Range("D4").CurrentRegion.Offset(2, 0)
Variable T diisi dengan tinggi (banyaknya baris) pada *range dTabel*dikurangi
*2*
Pengurangan 2 adalah dua baris kosong dlm tabel bagian bawah, ya kan ?
Maksudnya agar dengan nilai T seperti itu NANTINYA dTabel merujuk tabel
tepat pada
area datanya saja tidak lebih, tidak kurang !!
T = dTabel.Rows.Count - 2
SpinButton diberi nilai MIN = 1 dan diberi nilai MAX = T
(maksodnya.. nilai MAX pada SpinButton agar = banyaknya record (baris data)
di dTabel
gitu loch..
Sheets("contoh surat").SpinButton1.Min = 1
Sheets("contoh surat").SpinButton1.Max = T
batas berakhirnya prosedur ini
End Sub
'--------------
Perintah yg ada di dalam prosedur EVENT ini *akan Ostosmastis JALAN* jika
Tombol bernama *Print1_Button *menderita diceklik
Private Sub Print1_Button_Click()
' langsung Cetak ke Printer
Me.PrintOut
End Sub
'-------------
Perintah yg ada di dalam prosedur EVENT ini *akan Ostosmastis JALAN* jika
Tombol bernama *Print2_Button* menderita diceklik
Private Sub Print2_Button_Click()
Soal Dim-dim-an sudah dijelaskan di atas Oke ? (okeh)
Dim i As Long
dimulai sebuah* loop* (serangkaian aksi / operasi yg akan diulang-ulang !
perulangannya mulai dari bilangan ke (nilai cell N11) sampai bilangan ke
(nilai cell N13)
*biar ndak bingung, kita berikan illustrasi begini *
for i = 1 to 10 atau lengkapnya
for i = 1 to 10 Step *+*1 (soale step-mundur (minus) juga ada
(Nilai Step baru perlu dituliskan jika bernilai negatip atau encreament-nya
BUKAN 1)
perulangan akan terjadi 10 kali
setiap step, nilai i yg semula = 1 menaik 1 terus menerus menuju 10
for i = 10001 to 10002
perulangan akan terjadi CUMA 2 kali
setiap step, nilai i yg semula = 10001 menaik 1 "terus menerus" menuju
10002
Paham kan ! Kalau anda faham anda telah menjadi Fahmi (orang yg faham!)
For i = Range("N11") To Range("N13")
Cell N2 diisi dengan nilai i (nilai perulangan, biasanya berupa nomor urut )
*maksudnya* (ini sudah diluar makronya ya..)
di Worksheet, cell *N1* kan sudah kita beri PURBOWASESO (kekuasaan untuk
bertindak apa saja)
terutama untuk mengontrol tampilnya data, karena dia akan dijadikan RowIndex
pada
rumus-rumus Penampil Data. N1 sendiri merupakan Linked Cell dari Spinbutton
SpinnButoon hanya bertuga menggampangkan anda mengubah ubah nilai N1 secara
sekuensial
Nah dengan NILAI N1 diubah menjadi *i* dan setiap step nilai i NAIK 1, maka
penampil data tentu
akan secara sequensial menampilkan data tabel, record demi record, tetapi
terbatas dari
nilai pembatas di cell N11 dan N13 saja .
Range("N2") = i
Begitu data yg tampil telah berganti (gara-gara berubahnya N2
maka tukang cetak sudah tidak sabar langsung: CETAK! gitu ajah.. GPTL (Gak
Pake tunggu Lama)
Me.*PrintOut*
Dengan diberi tanda ' (aphostrof) didepannya; maka perintah ini berubah
menjadi sekedar
Comment bukan Statement VBA, barangkali saja kapan kapan mo dipakai (test)
lagi
' Me.PrintPreview
batas perulangan per step (maksodnya: jika step belum tuntas
maka perintah kembali lagi ke baris paling atas dlm BOK perulangan!
Next i
Batas berakhirnya prosedur
End Sub
Opo maneh ? yo
Mudah-mudahan dongengannya ndak terlalu keluar dari pakem...
dan maksud 'penerangan' bukan malah menjadi 'penggelapan'...
kalau urusannya sampai KPK.. bisa repottt...
2011/7/27 Yusril Ramadani <[email protected]>
> **
>
>
> Dear Mba Siti dan Pakar Excell semua
>
> Terima kasih untuk bantuannya, sungguh sangat membantu dan mempermudah
> kerjaan saya
> Tapi bolehkah saya bertanya lagi
>
> Kalau saya mau buat *beberapa sheet yang bisa diprint langusung* seperti
> sheet surat itu macronya gimana ya ?
> Terus boleh dijelaskan ga arti formula dibawah, pengen banget bisa create
> seperti itu sendiri
>
> Terima kasih sebelumnya
>
> Private Sub Worksheet_Deactivate()
> Dim dTabel As Range, T As Long
> Set dTabel = Me.Range("D4").CurrentRegion.Offset(2, 0)
> T = dTabel.Rows.Count - 2
> Sheets("contoh surat").SpinButton1.Min = 1
> Sheets("contoh surat").SpinButton1.Max = T
> End Sub
>
>
> 2 ada di module sheet FORM surat
>
> Private Sub Print1_Button_Click()
> Me.PrintPreview
> ' Me.PrintOut
> End Sub
>
> Private Sub Print2_Button_Click()
> Dim i As Long
> For i = Range("N11") To Range("N13")
> Range("N2") = i
> Me.PrintPreview
> ' Me.PrintOut
> Next i
> End Sub
>