Deskripsi
Kita akan mempelajari beberapa metode berbeda untuk Cut,
Copy dan Paste menggunakan VBA Macro Excel. Dimana hasil Paste akan disimpan di
Range atau Cell lainnya. Serta Cut, Copy dan Paste dengan kriteria tertentu.
Copy (Cut) dan Paste Pada Satu Cell
Contoh metode copy atau cut dan paste pada satu cell,
misalkan pada Cell atau Range "A3" yang berada pada Tabel 1 akan di pastekan ke Range
“E3” yang berada pada pada Tabel 2.
Dengan fungsinya adalah sebagai berikut,
Sub paste_SatuCell()
' Keyboard Shortcut: Ctrl+Shift+G
'Copy dan Paste Satu Cell
Range("A3").Copy Range("E3")
'Cut dan Copy Satu Cell
Range("A3").Cut Range("E3")
Application.CutCopyMode = xlCopy
End Sub
Untuk menjalankannya cukup dengan menekan tombol CTRL+
SHIFT + G pada keyboard.
Copy Ke Active Cell
Jika ingin copy Active Cell ke Cell lainnya dengan mengatur
Offset atau lokasi baris kolom setelah Active Cell.
Keterangan: garis kotak putus-putus merupakan Cell yang
sedang aktif yaitu “A3” akan di copykan ke yang sebaris dengan Cell yang aktif
dan 3 baris setelah Cell yang aktif. Untuk mengeksekusinya cukup dengan CTRL +
SHIFT + H pada Keyboard.
Sub CopySelection()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+H
'Paste ke Range Yang telah ditentukan
ActiveCell.Copy Range("A3")
'Offset paste (Offset 0 cells kebawah dan 4 ke kanan)
'Pastekan sebaris dengan Active cell dan 4 kolom setelah active cell
ActiveCell.Copy
ActiveCell.Offset(0, 4).PasteSpecial (xlPasteAll)
End Sub
Sub CopySelection()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+H
'Paste ke Range Yang telah ditentukan
ActiveCell.Copy Range("A3")
'Offset paste (Offset 0 cells kebawah dan 4 ke kanan)
'Pastekan sebaris dengan Active cell dan 4 kolom setelah active cell
ActiveCell.Copy
ActiveCell.Offset(0, 4).PasteSpecial (xlPasteAll)
End Sub
Copy (Cut) dan Paste Ke Beberapa Cell atau Range
Contoh metode copy atau cut dan paste ke beberapa cell,
misalkan pada Cell atau Range “A3:B3” yang berada pada Tabel 1 akan di pastekan
ke Range “E3:F3” yang berada pada pada Tabel 2.
Dengan fungsinya adalah sebagai berikut,
Sub paste_BanyakCell()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+K
'Copy dan Paste Satu Cell
Range("A3:B3").Copy Range("E3:F3")
'Cut dan Copy Satu Cell
Range("A3:B3").Cut Range("E3:F3")
Application.CutCopyMode = xlCopy
End Sub
Sub paste_BanyakCell()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+K
'Copy dan Paste Satu Cell
Range("A3:B3").Copy Range("E3:F3")
'Cut dan Copy Satu Cell
Range("A3:B3").Cut Range("E3:F3")
Application.CutCopyMode = xlCopy
End Sub
Untuk menjalankannya cukup dengan menekan tombol CTRL+
SHIFT + K pada keyboard.
Sub Paste_SheetdanWorkBook_Lain()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+Y
'Copy atau Cut dan Paste ke Sheet lainnya
Sheet1.Range("A1:B4").Copy Sheet2.Range("A1:B4")
'Sheet1.Range("A1:B4").Cut Sheet2.Range("A1:B4")
Workbooks("Cut, Copy, Paste Vba Macro Excel.xlsm").Worksheets("sheet1").Range("A1:B4").Copy _
Workbooks("book2.xlsm").Worksheets("sheet1").Range("A1:B4")
Application.CutCopyMode = xlCopy
End Sub
Copy (Cut) dan Paste Ke Worksheet Lain Atau Workbook
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+Y
'Copy atau Cut dan Paste ke Sheet lainnya
Sheet1.Range("A1:B4").Copy Sheet2.Range("A1:B4")
'Sheet1.Range("A1:B4").Cut Sheet2.Range("A1:B4")
Workbooks("Cut, Copy, Paste Vba Macro Excel.xlsm").Worksheets("sheet1").Range("A1:B4").Copy _
Workbooks("book2.xlsm").Worksheets("sheet1").Range("A1:B4")
Application.CutCopyMode = xlCopy
End Sub
Value Paste
Umumnya untuk mengcopykan suatu cells menggunakan kode
perintah “.Copy” dan “.Paste”. Namun cara tersebut bukanlah satu-satunya cara
ada cari lain yaitu dengan cara memanfaatkan value setiap cells dengan
menggunakan operator pembanding “=”. Artinya nilai pada Cells yang satu
langsung diisikan kepada Cells yang lain dengan perintah Operator “=”.
Sub ValuePaste()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+E
'Value Paste antar cell
Range("E3:F3").value = Range("A3:B3").value
'Value Paste antar Sheets
Sheet2.Range("A1:B4").value = Sheet1.Range("A1:B4").value
'Value Paste antar Workbook
Workbooks("book2.xlsm").Worksheets("sheet1").Range("A1:B4").value = _
Workbooks("Cut, Copy, Paste Vba Macro Excel.xlsm").Worksheets("sheet1").Range("A1:B4").value
End Sub
Paste Special
Sub ValuePaste()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Shift+E
'Value Paste antar cell
Range("E3:F3").value = Range("A3:B3").value
'Value Paste antar Sheets
Sheet2.Range("A1:B4").value = Sheet1.Range("A1:B4").value
'Value Paste antar Workbook
Workbooks("book2.xlsm").Worksheets("sheet1").Range("A1:B4").value = _
Workbooks("Cut, Copy, Paste Vba Macro Excel.xlsm").Worksheets("sheet1").Range("A1:B4").value
End Sub
Paste Special
Paste Special membolehkan kita Copy dan Paste dengan
properties yang lebih detail. Misalkan nilai yang di copykan adalah
Formula(rumus) cell, formats dari cell, values, lebar cell, dan lain-lain serta
memungkinkan untuk perintah Paste yang khusus misalkan Skip Blank atau
melewatkan cell yang kosong untuk dicopykan.
Sekarang kita akan mencoba copy format Accounting pada
Range “B10:B12” pada Tabel 3 ke Range “E10:E12” pada Tabel 4.
Dimana kode perintah copy PasteSpecial Format Number VBA
Macro Excel adalah sebagai berikut,
Sub PasteSpecialYes()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Sh ift+F
'Lakukan Copy cell terlebih dahulu
Range("B10:B12").Copy
'Paste Satuan Format Satuan Rupiah ke Range D10:D12
Range("E10:E12").PasteSpecial Paste:=xlPasteFormats
'Paste Lebar Kolom
Range("E10:E12").PasteSpecial Paste:=xlPasteColumnWidths
'Paste Formulas atau Rumus Excel
Range("E10:E12").PasteSpecial Paste:=xlPasteFormulas
'Paste dengan melewatkan cell yang kosong SkipBlanks
Range("E10:E12").PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = xlCopy
End Sub
Sub PasteSpecialYes()
' HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
' Keyboard Shortcut: Ctrl+Sh ift+F
'Lakukan Copy cell terlebih dahulu
Range("B10:B12").Copy
'Paste Satuan Format Satuan Rupiah ke Range D10:D12
Range("E10:E12").PasteSpecial Paste:=xlPasteFormats
'Paste Lebar Kolom
Range("E10:E12").PasteSpecial Paste:=xlPasteColumnWidths
'Paste Formulas atau Rumus Excel
Range("E10:E12").PasteSpecial Paste:=xlPasteFormulas
'Paste dengan melewatkan cell yang kosong SkipBlanks
Range("E10:E12").PasteSpecial Paste:=xlPasteFormats, _
Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = xlCopy
End Sub
Cut, Copy dan Paste Dengan Kriteria Tertentu
Copy (Cut) dan Paste dengan Kriteria ini bertujuan untuk
mengumpulkan semua data yang duplikat atau data yang sama. Misal ketika akan
menghitung hasil penjualan barang per unit setiap waktunya dimana barang-barang
tersebut terdiri dari Tas, Dompet, Baju dan Alas Kaki. Berikut data-data yang
dimaksud,
Data-data tersebut akan dipisahkan kedalam beberapa Tabel
Dibawah ini,
Sehingga kode perintah VBA macro yang dapat digunakan
adalah sebagai berikut,
Sub CopyDenganKriteria()
Dim KataKunci As String: KataKunci = "Sendal"
Dim RangeCari As Range
Set RangeCari = Range("J3:J9")
Dim cell As Range
Set cell = RangeCari.Find(KataKunci)
'HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
If cell Is Nothing Then
MsgBox ("Not Found")
Exit Sub
End If
Dim NilaiCellPertama As String
NilaiCellPertama = cell.Address
i = 1
Do
'Debug.Print "Found: " & cell.Address
cell.Interior.ColorIndex = 6
Range("$I$" & cell.Row & ":$N$" & cell.Row).Interior.ColorIndex = 6
Range("I" & 13 + i).value = i
Range("J" & 13 + i).value = Range("J" & cell.Row).value
Range("K" & 13 + i).value = Range("K" & cell.Row).value
Range("L" & 13 + i).value = Range("L" & cell.Row).value
Range("M" & 13 + i).value = Range("M" & cell.Row).value
Range("N" & 13 + i).value = Range("N" & cell.Row).value
i = i + 1
Set cell = RangeCari.FindNext(cell)
Loop While NilaiCellPertama <> cell.Address
End Sub
Private Sub CommandButton1_Click()
Call CopyDenganKriteria
End Sub
Sub CopyDenganKriteria()
Dim KataKunci As String: KataKunci = "Sendal"
Dim RangeCari As Range
Set RangeCari = Range("J3:J9")
Dim cell As Range
Set cell = RangeCari.Find(KataKunci)
'HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
If cell Is Nothing Then
MsgBox ("Not Found")
Exit Sub
End If
Dim NilaiCellPertama As String
NilaiCellPertama = cell.Address
i = 1
Do
'Debug.Print "Found: " & cell.Address
cell.Interior.ColorIndex = 6
Range("$I$" & cell.Row & ":$N$" & cell.Row).Interior.ColorIndex = 6
Range("I" & 13 + i).value = i
Range("J" & 13 + i).value = Range("J" & cell.Row).value
Range("K" & 13 + i).value = Range("K" & cell.Row).value
Range("L" & 13 + i).value = Range("L" & cell.Row).value
Range("M" & 13 + i).value = Range("M" & cell.Row).value
Range("N" & 13 + i).value = Range("N" & cell.Row).value
i = i + 1
Set cell = RangeCari.FindNext(cell)
Loop While NilaiCellPertama <> cell.Address
End Sub
Private Sub CommandButton1_Click()
Call CopyDenganKriteria
End Sub
Hasil dari proses Copy dengan kriteria ini adalah:
Demikianlah beberapa metode berbeda untuk Cut, Copy dan
Paste menggunakan VBA Macro Excel. Disarankan seringlah membaca tentang
fungsi-fungsi kode perintah VBA Macro Excel di Blog ini.
Semoga Bermanfaat
Terima Kasih telah berkunjung di https://www.agungpanduan.com
Share This :
0 Comments