Public Sub Repotnya_ngePrint()
Dim sShtName As String, sSht() As String
Dim sUser As String
Dim vShtName As Variant
Dim rng As Range
sUser = Sheet1.Range("ac17").Value 'get user's value
'set nama sheet yang pasti di print, atau ada peraturan lain, atur aja
sShtName = "Gabung|cover|Ikhtisar|peserta|KARTU_REMID"
If InStr(sUser, "2") <> 0 Then 'cek pilihan _2
If WorksheetFunction.CountIf(Sheet5.Range("d:d"), "<>0") > 0 Then
'data_2 ada angka selain 0
sShtName =
"UR_Valid|UR_Sk|UR_Butir|UR_Serap|UR_Danil|Batang_URI|UR_Reliabilitas|Jawaba
n_UR|Kompetensi_UR|Kisi-kisi_UR|" & sShtName 'daftar
nama-nama sheetnya
Else
sShtName =
"UR_Valid|UR_Sk|UR_Butir|UR_Serap|UR_Danil|Batang_UR|UR_Reliabilitas|Kompete
nsi_UR|Kisi-kisi_UR|" & sShtName 'nama-nama sheet _2
tanpa data_2
End If
End If
If InStr(sUser, "1") <> 0 Then 'cek pilihan _1
If WorksheetFunction.CountIf(Sheet4.Range("d:d"), "<>0") > 0 Then
'data_1 ada angka selain 0
sShtName =
"Jawaban_PJ|PJ_Serap|PJ_Tuntas|PJ_Butir_soal|PJ_Tabulasi|PJ_Valid|PJ_Valid_A
ll|PJ_Reliabel|Kisi-kisi|" & sShtName 'daftar nama-nama sheetnya
Else
sShtName =
"PJ_Serap|PJ_Tuntas|PJ_Butir_soal|PJ_Tabulasi|PJ_Valid|PJ_Valid_All|PJ_Relia
bel|Kisi-kisi|" & sShtName 'nama-nama sheet _1 tanpa data_1
End If
End If
sSht() = Split(sShtName, "|") 'buat
array nama-nama sheet
For Each vShtName In sSht 'loop
setiap nama sheet (bukan setiap sheet)
With Sheets(vShtName) 'di
sheet yang namanya sedang diproses loop
'tentukan area data yang akan diprint berdasar kata 'nilai'
Set rng = .UsedRange.Find("nilai").CurrentRegion
If Not rng Is Nothing Then 'cek ada
atau tidak areanya
.PageSetup.PrintArea = rng.Address 'set
print area
.PrintOut 'kirim
ke printer
End If 'akhit
blok cek keberadaan area data
End With 'selesai
kerja si sheet tersebut
Next vShtName 'nama
sheet berikutnya
End Sub
mohon koreksi pada kesalahan yang masih di blok kuning mr. Kid....
From: [email protected] [mailto:[email protected]]
On Behalf Of Kid Mr.
Sent: 12 Oktober 2012 0:36
To: [email protected]
Subject: Re: [belajar-excel] tanya cara print dg menggunakan tombol bottom
Hai Prazt,
Cara ke-2 berikut bisa dikembangkan untuk membuat cara 1.
>> Pada sebuah module, tuangkan script sebuah prosedur berikut :
Public Sub Repotnya_ngePrint()
Dim sShtName As String, sSht() As String
Dim sUser As String
Dim vShtName As Variant
Dim rng As Range
sUser = Sheet1.Range("s25").Value 'get user's value
'set nama sheet yang pasti di print, atau ada peraturan lain, atur aja
sShtName = "gabung|kembar"
If InStr(sUser, "_2") <> 0 Then 'cek pilihan _2
If WorksheetFunction.CountIf(Sheet3.Range("d:d"), "<>0") > 0 Then
'data_2 ada angka selain 0
sShtName = "data_2|olah_2a|olah_2b|" & sShtName
'daftar nama-nama sheetnya
Else
sShtName = "olah_2a|olah_2b|" & sShtName
'nama-nama sheet _2 tanpa data_2
End If
End If
If InStr(sUser, "_1") <> 0 Then 'cek pilihan _1
If WorksheetFunction.CountIf(Sheet2.Range("d:d"), "<>0") > 0 Then
'data_1 ada angka selain 0
sShtName = "data_1|olah_1a|olah_1b|" & sShtName
'daftar nama-nama sheetnya
Else
sShtName = "olah_1a|olah_1b|" & sShtName
'nama-nama sheet _1 tanpa data_1
End If
End If
sSht() = Split(sShtName, "|") 'buat
array nama-nama sheet
For Each vShtName In sSht 'loop
setiap nama sheet (bukan setiap sheet)
With Sheets(vShtName) 'di
sheet yang namanya sedang diproses loop
'tentukan area data yang akan diprint berdasar kata 'nilai'
Set rng = .UsedRange.Find("nilai").CurrentRegion
If Not rng Is Nothing Then 'cek ada
atau tidak areanya
.PageSetup.PrintArea = rng.Address 'set
print area
.PrintOut 'kirim
ke printer
End If 'akhit
blok cek keberadaan area data
End With 'selesai
kerja si sheet tersebut
Next vShtName 'nama
sheet berikutnya
End Sub
>> Kemudian set si button (bukan bottom ya) agar menjalankan prosedur
tersebut.
Konsep :
Membuat teks berisi daftar nama-nama sheet yang akan diprint, yang
dipisahkan oleh sebuah karakter pemisah (delimiter).
Dari teks inilah akan didapat array nama sheet yang akan di-print.
Wassalam,
Kid.
2012/10/10 Prazt Math <[email protected]>
Dear exceller...
Mohonbantuannya dengan permasalahan yang menyandung langkah saya seperti
pada file terlampir
(permasalahan / pertanyaan ada di file lampiran)
Terimakasih atas segala bantuan beserta ilmunya...
<<image001.jpg>>
<<image002.jpg>>

