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.

15 Responses to "Cara Copy Data Dari File Lain dengan VBA"

  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

    BalasHapus
  2. untuk file yang berextensi XLSM kok gak bisa

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

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

      Hapus
    2. Jika belum tahu cara membuat range klik saja alamat berikut ini
      http://www.excel-id.com/2015/02/cara-membuat-nama-range-dan-bagaimana.html?m=1
      Coding "Riwayat" bisa disesuaikan saat membuat range

      Hapus
  4. Sub rpt_HTML()

    Sheets("Olah Laporan").Select
    Dim namawbHTML As String

    namasheetHTML = Sheet2.Range("S89").Value
    namawbHTML = ActiveWorkbook.Path & "\rpt_Temp\" & Sheet2.Range("S89").Value & "_" & Format(Now, "yymmddhhmmss") & ".htm"
    Sheets("Olah Laporan").Copy

    Sheets("Olah Laporan").Select
    Sheets("Olah Laporan").Name = namasheetHTML

    ActiveWorkbook.SaveAs filename:= _
    namawbHTML, FileFormat:=xlHtml, _
    ReadOnlyRecommended:=False, CreateBackup:=False



    ActiveWorkbook.Save
    ActiveWindow.Close


    Dim HyperHTML As String
    HyperHTML = namawbHTML
    On Error Resume Next

    ThisWorkbook.FollowHyperlink address:=HyperHTML ', NewWindow:=True true

    If Err.Number <> 0 Then
    MsgBox "Tekan tombol 'Yes' agar laporan bisa dibuka"
    Exit Sub
    End If
    End Sub





    Itu coding untuk format html,
    Kalau kita mau menyimpan format excel bagai mana pak?
    Terima kasih

    BalasHapus
  5. Alamatrange, "="'&
    Maksudny ap itu yahh...soalny sy eror disana

    BalasHapus
  6. Alamatrange, "="'&
    Maksudny ap itu yahh...soalny sy eror disana

    BalasHapus
  7. kalau untuk membuka file windowsnya gimana ya, script di ataskan directorynya otomatis, saya mau directorynya kita yg milih
    terima kasih sebelunnya

    BalasHapus
  8. tidak berhasil melulu. bisa minta file contohnya ngak ?

    BalasHapus
  9. 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("D:\DATA\Mastur.xls")
    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

    BalasHapus
  10. skripnya error disini
    AmbilData.Sheets("Sheet1").Range("riwayat").Copy

    BalasHapus
  11. Mohon bantuannya ya gan sy punya case seperti ini,
    dalam satu folder sy punya 5 file dimana 4 file memuat master data dengan nama week1 week2 week3 dan week4 dan 1 data sebagia file reporting. Bagaimana codingan untuk vba.nya jika sy mau mengambil data dari file berbeda jika sy punya parameter data yg di ambil hanya week1 sampai week2 atau week3 sampai wee4 tergantung parameter yg sy tentukan tadi. Sebelumnya sy hanya bisa mengambil semua data saja pada satu folder untuk file-file tretentu sy blm bisa. Mohon pencerahannya

    BalasHapus
  12. untuk copy data dengan banyak sheets pada workbook g mana itukan hanya untuk 1 sheet saja mohon penjelasan

    BalasHapus
  13. Kalau membuat vba vlookup antar workbook bagaimana?

    BalasHapus

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