Anda perlu Info "Number of Pages to be print" kan yaaa ??
Asumsinya: sheet yg akan dicari info-nya, sudah di "Page SetUp" lebih dulu
cara 1
sebuah prosedur diselipkan di tempat tertentu;
agar pada saat user AKAN menCETAK Sheet, >> prosedur tsb bekerja
isi prosedur (memanfaatkan salah satu perintah makro excel4)
ExecuteExcel4Macro("Get.Document(50)")
maka hasilnya setiap user akan mencetak sheet (mana pun di workbook bermakro tsb)
akan muncul msgbox yg memberitahukan jumlah PAGE yg akan di PRINT
Cara ini sudah di-implementasikan pada workbook terlampir (contoh)
Cobalah memberlakukan filter-filter di sheet contoh (berisi daftar Fungsi di Excel 2003)
setiap difilter akan ada beberapa rows yg menjadi tersembunyi, dan ini menyebabkan
jumlah page yg akan diPRINT berubah.
maka MsgBox nya pun (muncul ketika anda memberi perintah Print atau Print Preview)
memberi info sesuai keadaan terbaru
Prosedurnya ditulis di module level wokbuk sbb:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
' siti Vi / 27 April 2010
Dim YesNo, tex As String
tex = "Banyaknya PAGE yg akan di Print : "
tex = tex & CLng(ExecuteExcel4Macro("Get.Document(50)")) & vbCrLf & vbCrLf
tex = tex & "Mau di-PRINT sekarang ??"
YesNo = MsgBox(tex, vbQuestion + vbYesNo, "ctv for Sheet: " & ActiveSheet.Name)
If YesNo = vbNo Then Cancel = True
End Sub
' siti Vi / 27 April 2010
Dim YesNo, tex As String
tex = "Banyaknya PAGE yg akan di Print : "
tex = tex & CLng(ExecuteExcel4Macro("Get.Document(50)")) & vbCrLf & vbCrLf
tex = tex & "Mau di-PRINT sekarang ??"
YesNo = MsgBox(tex, vbQuestion + vbYesNo, "ctv for Sheet: " & ActiveSheet.Name)
If YesNo = vbNo Then Cancel = True
End Sub
Prosedur kelihatannya jadi agak panjang, karena hanya dipenuhi pesan-pesan
Perintah intinya hanyalah code dlm font warna coklat saja.
Sebetulnya cara menggunakan perintah makro excel4 tidak harus melalui pemrograman
VBA spt di atas,
Tanyakan kpd bang momod tuh (di buku 50 jurus saktinya banyak sekali memberi NAMA
(Define > Name) perintah makro excel4) ; lalu dari cell , NAMA itu dipanggil melalui formula.
....... halo bang momods..., gitu kan ya???
cara 2
Dengan membuat FBD atau UDF seperti di bawah ini
Nantinya anda dapat menulis formula di sheet / cell mana saja
=JmlPageAkanDiCETAK()
atau kalau ingin mengetahui sheet lain (juga di workbook lain ygsedang terbuka)
=JmlPageAkanDiCETAK(SatuCell_diSebuahSheet/BookLain)
cara ini; kalau anda mau; harus menuliskan codenya di module standar...
Function JmlPageAkanDiCETAK(Optional cel As Range) As Integer
Dim iHPgBreaks As Integer, iVPgBreaks As Integer
Dim iTotPages As Integer, PrintSheet As Worksheet
If cel Is Nothing Then
Set PrintSheet = ActiveSheet
Else
Set PrintSheet = cel.Parent
End If
iHPgBreaks = PrintSheet.HPageBreaks.Count + 1
iVPgBreaks = PrintSheet.VPageBreaks.Count + 1
iTotPages = iHPgBreaks * iVPgBreaks
JmlPageAkanDiCETAK = iTotPages
End Function
Dim iHPgBreaks As Integer, iVPgBreaks As Integer
Dim iTotPages As Integer, PrintSheet As Worksheet
If cel Is Nothing Then
Set PrintSheet = ActiveSheet
Else
Set PrintSheet = cel.Parent
End If
iHPgBreaks = PrintSheet.HPageBreaks.Count + 1
iVPgBreaks = PrintSheet.VPageBreaks.Count + 1
iTotPages = iHPgBreaks * iVPgBreaks
JmlPageAkanDiCETAK = iTotPages
End Function
----- Original Message -----From: Ihsan PurwadiSent: Monday, April 26, 2010 12:54 PMSubject: ]] XL-mania [[ Cara Menghitung Jumlah Halaman Print
Salam,
Para Master sekalian, saya mau nanya macro untuk menghitung jumlah halamanyang akan di print apa yah? untuk memperkirakan kertas yang nanti akandibutuhkan untuk ngeprint beberapa file excel..
sekiranya sudah pernah dibahas, sepertinya saya belum menemukan...
terima kasihHormat saya,
Ihsan Purwadi
Nenhum comentário:
Postar um comentário