Diskusi tentang Excel

Cara Copy Data Dari File Lain dengan VBA

Copy data dari file lain tanpa membuka file yang akan di copy nya tentu harus dengan bantuan coding VBA agar hal ini dapat dilakukan dengan mudah tanpa Anda melakukan teknik copy dan paste. Rasanya akan ribet apabila Anda buka file kemudian paste klik copy kemudian buka file kembali kemudian klik paste.

Cara ini tentu sangat sederhana dengan logika cari lokasi file kemudian cari alamat sheet cari pula alamat range lalu buka lokasi tempat paste nya lalu paste berhasil tanpa membuka file sumber. Tahapan tersebut akan dibuat dengan coding seperti berikut. Silakan Anda buat satu buah Module dan copy paste coding dibawah ini

Sub CaraNgopyRange()
Dim AmbilData As Excel.Workbook
Dim AlamatRange As String
Dim TargetWorkbook As Excel.Workbook
Dim TargetSheet As Excel.Worksheet

Application.ScreenUpdating = False
AlamatRange = "riwayat"
Set AmbilData = Workbooks.Open("F:\DATA\1. Mastur.xls") 'Silakan ganti alamat disini
AmbilData.Sheets("Sheet1").Range("riwayat").Copy
Set TargetWorkbook = ThisWorkbook
Set TargetSheet = TargetWorkbook.Sheets(1)
TargetSheet.Range("A2").PasteSpecial Paste:=xlPasteValues
TargetWorkbook.Names.Add AlamatRange, "='" & TargetSheet.Name & "'!" & Selection.Address
AmbilData.Close savechanges:=True

MsgBox ("Silakan klik OK")
Application.ScreenUpdating = False
End Sub
Ingat, letakkan coding diatas kedalam module. coba perhatikan kode berikut ini berfungsi untuk

Set AmbilData = Workbooks.Open("F:\DATA\1. Mastur.xls") 'Silakan ganti alamat disini, 
hal ini merupakan pencarian alamat tempat target atau sumber penyimpanan file yang akan dicopy yaitu di drive F kemudian folder DATA dan nama file adalah 1. Mastur.xls

AmbilData.Sheets("Sheet1").Range("riwayat").Copy
Maksudnya adalah file yang sudah diarahkan ke alamat tersebut akan dicopy tepatnya pada sheet1 dengan nama range "riwayat" tentunya Anda harus membuat Name Range terlebih dahulu pada excelnya silakan simak ulisan saya


[04] Cara Membuat Nama Range dan Bagaimana Cara Menggantinya

Langkah berikutnya silakan masuk kembali ke worksheet dan buat satu buah tombol atau CommandButton pada sheet kemudian arahkan macro pada name CaraNgopyData



Klik OK, silakan Ganti nama Commandbutton tersebut dengan tulisan "AmbilData" Hasilnya jika Anda klik tombol tersebut maka sebuah pesan akan muncul "Silakan klik OK"



Apabila Anda klik OK maka hasilnya semua data pada range "Riwayat" akan dicopy seperti gambar berikut ini



Berhasil.

Selamat mencoba dan semoga bermanfaat.

Related

Range 654503101732873750

Post a Comment

  1. Terima kasih master tutornya bermanfaat ini yang saya carai.. Terus kemudian jika hasil kopiannya tersebut ditaruh pada Kolom yang tidak berurutan bagaimana. saya mecoba menggunakan format as table... terima kasih

    ReplyDelete
  2. untuk file yang berextensi XLSM kok gak bisa

    ReplyDelete
  3. AmbilData.Sheets("Sheet1").Range("riwayat").Copy
    ini dari mana?

    ReplyDelete
    Replies
    1. Data yang diambil berada di Sheet1 kemudian nama rangenya adalah "Riwayat" jika ketemu maka copy

      Delete

Tulisan ini Bermanfaat..? Silakan berkomentar sesuai topik artikelnya, tidak dianjurkan menggunakan kata-kata yang dapat menimbulkan hal negatif. Mohon maaf apabila tidak memiliki etika akan Admin HAPUS tanpa pemberitahuan kembali. Terimakasih... salam Exceler

emo-but-icon

item