Dear Pak Franz,
Sebenarnya indikasi 30 rows per page adalah sample, Hanya untuk mengindikasikan sisa di page terakhir, apa bila ada sisa dalam satu criteria, harus tetap di cetak. Misal di zone RA-E-1 ada 51, misal 1 page 50, maka sisa 1 page tetap mencetak 1 row itu. Tapi dipisahkan dengan zone RA-F-1. Karena pembatas-nya adalah zone yang berbeda. Seperti itu. Thanks, Anto From: belajar-excel@yahoogroups.com [mailto:belajar-excel@yahoogroups.com] On Behalf Of Franciscus SOG Sent: Saturday, June 18, 2011 10:11 AM To: belajar-excel@yahoogroups.com Subject: Re: [belajar-excel] Cara Set Page Break Base On Kriteria Tertentu Dear Anto, Setelah membaca kamus, ternyata ada cara lebih praktis. Cara manual sebelumnya mohon diabaikan. Berikut cuplikan vba-nya : Sub ManualPagebreaks() Dim vAwal, vAkhir, vJumlah, i As Variant Dim Areaku As String ActiveSheet.ResetAllPageBreaks ActiveSheet.PageSetup.PrintArea = "A2:F571" Areaku = ActiveSheet.PageSetup.PrintArea vAwal = Range(Left(Areaku, Application.Find(":", Areaku) - 1)).Row vAkhir = Range(Mid(Areaku, Application.Find(":", Areaku) + 1, 99)).Row vJumlah = WorksheetFunction.RoundUp(Range(Areaku).Rows.Count / 30, 0) For i = 1 To vJumlah If vAwal + 30 < vAkhir Then ActiveSheet.Rows(vAwal + 30).PageBreak = xlPageBreakManual vAwal = vAwal + 30 End If Next i ActiveSheet.VPageBreaks(1).DragOff xlToRight, 1 End Sub Asumsi range print area = "A2:F571" Asumsi setiap pages mempunyai 30 row Hal diatas dapat dibuat dinamis menggunakan deklarasi variabel ke range di activesheet atau melalui input box. CMIIW Blessings, Fran'z On 6/17/11, Sudarsono Suhenk <jkss...@gmail.com <mailto:jkssbma%40gmail.com> > wrote: > Sub uf_PageBreak(ByVal strdaerah As String, antarbaris As Long) > Dim awalbaris As Long > Dim jumbaris, kali_PB As Long > Dim daerah As Range > > Set daerah = Range(strdaerah) > awalbaris = daerah.Row > > jumbaris = daerah.Rows.Count > > kali_PB = Excel.WorksheetFunction.RoundUp(jumbaris / antarbaris, 0) > ActiveSheet.ResetAllPageBreaks > For I = 1 To kali_PB > Range("A" & awalbaris + (I * antarbaris) + 1).Select > > ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell > Next I > End Sub > Sub test() > Call uf_PageBreak("A10:C82", 15) > End Sub > > > Pada 17 Juni 2011 06:13, Franciscus SOG <jclu...@gmail.com <mailto:jclugbu%40gmail.com> > menulis: > >> >> >> Dear Anto, >> >> Permintaan Anda itu mungkin dilakukan. >> >> Untuk set print area, jika Anda menginginkan setiap 30 baris data >> menjadi next page. Maka Anda perlu insert 1 row sebagai pembatas. >> Karena ("A1:A30","A31:A60") dibaca menjadi ("A1:A60"). >> >> Dampak dari insert row tersebut bisa mempengaruhi hasil di worksheet >> Anda. Apalagi jika cells Anda sudah tidak sehat (misalnya di merge >> cells). >> >> Maaf, saya belum bisa memberikan solusi, karena saya terbentur dengan >> logika memecah range ("A1:A100") menjadi >> ("A1:A30","A32:A61","A63:A92","A94:A103"). >> >> Untuk codingnya sendiri, defaultnya seperti ini : >> >> ActiveSheet.PageSetup.PrintArea = Areaku >> >> Areaku merupakan lokasi yang diselect dan sudah dipecah seperti contoh >> diatas. >> >> Blessings, >> >> Fran'z >> >> >> On 6/17/11, Nicodemus Rusdiyanto <nicode...@cj.net <mailto:nicodemus%40cj.net> > wrote: >> > Dear All, >> > >> > Ada yang punya pengalaman dan cara meng-otomatiskan print area range >> sesuai >> > dengan data yang dikehendaki, tanpa harus drag per page ? >> > Misal di data ini saya mau cetak dengan kriteria sorting ZONE NO => >> LOCATION >> > => CATEGORY => PRODUCT NO (ini baru urutan datanya dulu) >> > Setelah itu pada saat cetak, bisa diotomatiskan dipisahkan sesuai ZONE >> > NO >> > atau tidak ? >> > Jadi kalau 1 zone punya 100 product, per page harus 30, maka akan jadi 4 >> > page, dengan page terakhir hanya berisi 10 product tidak masalah. >> > >> > Mohon pencerahan dan complainnya kalau case-nya kurang jelas :D >> > >> > Thanks, >> > Anto >> > >> > The message is ready to be sent with the following file or link >> attachments: >> > >> > SET_PRINT_AREA_AUTO >> > >> > >> > Note: To protect against computer viruses, e-mail programs may prevent >> > sending or receiving certain types of file attachments. Check your >> > e-mail >> > security settings to determine how attachments are handled. >> > >> >> >> >