Terima kasih Mba Siti
Mohon maaf merepotkan
saya pelajari ya
Terima kasih sekali lagi
2011/7/27 STDEV(i) <[email protected]>
> **
>
>
> (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
>>
>
>
>