(1)
'----usul------
Private Sub New_sheet()
Sheets("Cetak").Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.Unprotect
.UsedRange.Copy
.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
.Name = Cells(8, 4)
.Shapes("CommandButton1").Delete
.Shapes("CommandButton2").Delete
.Rows("19:76").Delete Shift:=xlUp
.Range("A1").Select
.PrintPreview 'Out Copies:=1, Collate:=True
End With
Sheets("Cetak").Select
End Sub
Sheets("Cetak").Copy After:=Sheets(Sheets.Count)
With ActiveSheet
.Unprotect
.UsedRange.Copy
.UsedRange.PasteSpecial xlPasteValues
Application.CutCopyMode = False
.Name = Cells(8, 4)
.Shapes("CommandButton1").Delete
.Shapes("CommandButton2").Delete
.Rows("19:76").Delete Shift:=xlUp
.Range("A1").Select
.PrintPreview 'Out Copies:=1, Collate:=True
End With
Sheets("Cetak").Select
End Sub
Sub Cetak()
Dim dTabel As Range, n As Integer
Set dTabel = Sheets("Data").Range("B3").CurrentRegion.Offset(2, 0)
Set dTabel = dTabel.Resize(dTabel.Rows.Count - 2, dTabel.Columns.Count)
For n = 1 To dTabel.Rows.Count
Sheets("Cetak").Range("D7").Value = n
Call New_sheet
Next n
End Sub
Dim dTabel As Range, n As Integer
Set dTabel = Sheets("Data").Range("B3").CurrentRegion.Offset(2, 0)
Set dTabel = dTabel.Resize(dTabel.Rows.Count - 2, dTabel.Columns.Count)
For n = 1 To dTabel.Rows.Count
Sheets("Cetak").Range("D7").Value = n
Call New_sheet
Next n
End Sub
(2)
selain itu; bisa pula digunakan userform untuk menentukan data yg mau dicetak
Private Sub UserForm_Initialize()
Dim Arr(), r As Long, c As Integer
Call DefineTabel
ReDim Arr(1 To nRow, 1 To nCol)
ListBox1.Clear
For c = 1 To nCol
For r = 1 To nRow
Arr(r, c) = DaTabel(r, c)
Next r
Next c
ListBox1.List() = Arr()
End Sub
Dim Arr(), r As Long, c As Integer
Call DefineTabel
ReDim Arr(1 To nRow, 1 To nCol)
ListBox1.Clear
For c = 1 To nCol
For r = 1 To nRow
Arr(r, c) = DaTabel(r, c)
Next r
Next c
ListBox1.List() = Arr()
End Sub
Private Sub CmdALL_Click()
Dim n As Integer
For n = 0 To ListBox1.ListCount - 1
ListBox1.Selected(n) = True
Next n
End Sub
Dim n As Integer
For n = 0 To ListBox1.ListCount - 1
ListBox1.Selected(n) = True
Next n
End Sub
Private Sub CmdNONE_Click()
Dim n As Integer
For n = 0 To ListBox1.ListCount - 1
ListBox1.Selected(n) = False
Next n
End Sub
Dim n As Integer
For n = 0 To ListBox1.ListCount - 1
ListBox1.Selected(n) = False
Next n
End Sub
Private Sub CmdPRINT_Click()
Dim n As Integer, c As Integer
Me.Hide
For n = 1 To ListBox1.ListCount
If ListBox1.Selected(n - 1) = True Then
With Sheets("Cetak").Range("D7")
For c = 1 To nCol
.Cells(c, 1) = DaTabel(n, c)
Next c
End With
Call New_Sheet
End If
Next n
End Sub
Dim n As Integer, c As Integer
Me.Hide
For n = 1 To ListBox1.ListCount
If ListBox1.Selected(n - 1) = True Then
With Sheets("Cetak").Range("D7")
For c = 1 To nCol
.Cells(c, 1) = DaTabel(n, c)
Next c
End With
Call New_Sheet
End If
Next n
End Sub
Private Sub CmdCLOSE_Click()
Me.Hide
End Sub
Me.Hide
End Sub
'----------------------
----- Original Message -----
From: Indra Psr
To: XL-mania@yahoogroups.com
Sent: Sunday, November 15, 2009 3:37 PM
Subject: ]] XL-mania [[ VBA cetak data (Auto Number)
Dh,
Saya baru belajar dalam penggunaan Visual Basic, (Pls open Attachment) yg mau saya tanyakan :
Cara untuk menjalankan aplikasi (macro cetak) tanpa mengulang2 secara manual kata-kata VBA
seperti di bawah ini untuk mengganti angka "1", "2", "3", dst di -ActiveCell.FormulaR1C1 = "2"-
Sub new_sheet()
Sheets("Cetak").Copy After:=Sheets(2)
ActiveSheet.Unprotect
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Cetak (2)").Select
Sheets("Cetak (2)").Name = Cells(8, 4)
Cells.Select
ActiveSheet.Shapes("CommandButton1").Select
Selection.Delete
ActiveSheet.Shapes("CommandButton2").Select
Selection.Delete
Rows("19:76").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Cetak").Select
End Sub
Sub cetak()
Sheets("Cetak").Select
Range("D7").Select
ActiveCell.FormulaR1C1 = "1"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "2"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "3"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "4"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "5"
Application.Run "new_sheet"
End Sub
yang diinginkan (kalau bisa):
maunya sich ketika kita pencet "command button _ Buat Data" langsung nge-link ke sheet_data, otomatis berapa orang yang kedaftar, langsung kecetak segitu banyak juga. jadi kan kalo misalnya data ada 50 orang, yang tercetak 50 orang juga, jadi kita gak cape-cape harus copy manual kata-kata (ActiveCell.FormulaR1C1 = "##") itu sampai 50 copy-an, trus ngegantiin angkanya 1-1. Contoh (untuk 5 data siswa) lihat di VBA app "cetak".
keinginan yang ke-2, ketika pencet "command button _ Cetak Pilihan" ada muncul form yang mau di cetak "no.sekian" sampai "no.sekian", atau "no ini", "no ini", dan "no ini". Jadi ceritanya, kalo kita mau nge-cetak, pilih-pilih 15 data dulu, karena data yang lain masih belum lengkap (munculnya seperti pilihan mau-ngeprint itu lo... Jadi kan kita bisa milih tu, data yang mau di cetak no. Mana sampai no. Mana, gitu... Bisa gak ya?)
keinginan ke-3, ketika kita ganti secara manual angka yang ada di range_"D7", saat tekan enter aplikasi (macro new_sheet) langsung jalan secara otomatis
keinginan ke-4, yg terahir.... (gak nyambung ke VBA) gimana cara ngilangin angka sebelah kiri ini (angka yang ada di row 1,2,3,4) sama ngilangin huruf yang di atas (column A,B,C,D) kalo di ms. Word kan ada tu "ruler..." itu kan gampang aja di ilanginnya, tp di ms. Excel...??? saya udah nyari2 itu... Tapi gak ktemu juga pencetannya.... (triknya dink...)
Itu aja dulu, terimakasih ya... Maaf kalo pertanyaannya banyak banget.
Semoga rekan-rekan dapat membantu saya.
Rgrd,
Indra
Sub new_sheet()
Sheets("Cetak").Copy After:=Sheets(2)
ActiveSheet.Unprotect
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Cetak (2)").Select
Sheets("Cetak (2)").Name = Cells(8, 4)
Cells.Select
ActiveSheet.Shapes("CommandButton1").Select
Selection.Delete
ActiveSheet.Shapes("CommandButton2").Select
Selection.Delete
Rows("19:76").Select
Selection.Delete Shift:=xlUp
Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Cetak").Select
End Sub
Sub cetak()
Sheets("Cetak").Select
Range("D7").Select
ActiveCell.FormulaR1C1 = "1"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "2"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "3"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "4"
Application.Run "new_sheet"
Range("D7").Select
ActiveCell.FormulaR1C1 = "5"
Application.Run "new_sheet"
End Sub
yang diinginkan (kalau bisa):
maunya sich ketika kita pencet "command button _ Buat Data" langsung nge-link ke sheet_data, otomatis berapa orang yang kedaftar, langsung kecetak segitu banyak juga. jadi kan kalo misalnya data ada 50 orang, yang tercetak 50 orang juga, jadi kita gak cape-cape harus copy manual kata-kata (ActiveCell.FormulaR1C1 = "##") itu sampai 50 copy-an, trus ngegantiin angkanya 1-1. Contoh (untuk 5 data siswa) lihat di VBA app "cetak".
keinginan yang ke-2, ketika pencet "command button _ Cetak Pilihan" ada muncul form yang mau di cetak "no.sekian" sampai "no.sekian", atau "no ini", "no ini", dan "no ini". Jadi ceritanya, kalo kita mau nge-cetak, pilih-pilih 15 data dulu, karena data yang lain masih belum lengkap (munculnya seperti pilihan mau-ngeprint itu lo... Jadi kan kita bisa milih tu, data yang mau di cetak no. Mana sampai no. Mana, gitu... Bisa gak ya?)
keinginan ke-3, ketika kita ganti secara manual angka yang ada di range_"D7", saat tekan enter aplikasi (macro new_sheet) langsung jalan secara otomatis
keinginan ke-4, yg terahir.... (gak nyambung ke VBA) gimana cara ngilangin angka sebelah kiri ini (angka yang ada di row 1,2,3,4) sama ngilangin huruf yang di atas (column A,B,C,D) kalo di ms. Word kan ada tu "ruler..." itu kan gampang aja di ilanginnya, tp di ms. Excel...??? saya udah nyari2 itu... Tapi gak ktemu juga pencetannya.... (triknya dink...)
Itu aja dulu, terimakasih ya... Maaf kalo pertanyaannya banyak banget.
Semoga rekan-rekan dapat membantu saya.
Rgrd,
Indra
Nenhum comentário:
Postar um comentário