Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain - Mas Operator
Skip to content Skip to sidebar Skip to footer

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

 Mas Operator. Assalamu'alaikum Wr. Wb. Salam sejahter, selamat datang kembali di Blog Mas Operator : Sebuah Blog Dari Seorang Operator Sekolah, di awal bulan Desember ini Saya akan berbagi sebuah tutorial mengenai Macro VBA Excel, yaitu : Cara Import Data Dari File (WorkBook) Lain.

Macro VBA Excel : Contoh Import Data Dari File (WorkBook)
Dengan menggunakan metode ini tentunya akan mempermudah pengguna untuk menginput data bila Sobat Blogger membuat sebuah aplikasi VBA Excel yang di dalamnya terdapat form/Userform input datanya. Karena nantinya pengguna (user) bisa menyalin (copy) data dari file (WorkBook) lain.

Dan berikut ini merupakan langkah-langkahnya:

Langkah-Langkah Dalam Membuat Aplikasi Import Data Menggunakan Excel (VBA):

1. Siapkan sebuah file yang akan kita jadikan aplikasi dimana di dalamnya kita memberikan sebuah fitur Import Data.

a. Siapkan sebuah sheet yangn nantinya akan dijadikan acuan atau database dari aplikasi kita. Disini Saya membuat database tersebut di Sheet1 yang saya ubah namanya menjadi Data Siswa, dan deret data yang dibutuhkan adalah seperti pada gambar di bawah ini:

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

b. Masuk ke halaman Visual Basic Ms. Excel kita, pastinya dengan cara menekan kombinasi tombol Alt+F11 pada keyboard atau bisa juga dengan klik pada Tab Meni Developer kemudian klik pada Visual Basic.

c. Di dalam halaman Visual Basic Excel tersebut, kita buat/sisipkan sebuah Userform dengan cara klik pada Tab Menu Insert kemudian klik pada Userform. Selanjutnya atur ukuran, warna Userform tersebut sesuai dengan keingin/kebutuhan, pada contoh ini seperti pada gambar di bawah ini:

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

d. Langkah selanjutnya adalah menyisipkan sebuah TextBox kedalam Userform tersebut, untuk ukuran atapun warnanya juga disesuaikan dengan kebutuhan/keinginan masing-masing, pada contoh ini hasilnya seperti berikut ini :

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

e. Langkah berikutnya adalah sisipkan 3 (tiga) buah Command Button, kemudian ubah Caption dari masing-masing Command Button tersebut menjadi :

1) Command Button1 = Cari;
2) Command Button 2 = Import; dan
3) Command Button3 = Batal

Hasil dari contoh ini adalah seperti pada gambar di bawah ini:

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

f. Selanjutnya adalah tahapan menyisipkan kode/script macro, ada 2 (dua) kode/script macro yang harus disipkan, yaitu 1. disisipkan ke dalam sebuah module dan 2. disisipkan ke dalam Userform.

1) Kode/Script macro untuk module :

Yang harus kita lakukan untuk pertama kalinya adalah menyisipkan sebuah module, caranya klik pada Tab Menu Insert kemudian klik Module. Jika sudah, silahkan Sobat Blogger Copas kode/script macro di bawah ini kedalam module tersebut:

Kode/Script Macro Untuk Module

Option Explicit
'https://masoperator.blogspot.com
Function SalinData_dari_WsTerpilih(wShtTujuan As Worksheet, wShtSumber As Worksheet) As Boolean
Dim lRangeTujuanSalinanData As Long, lBarisAkhir As Long, lKolomAkhir As Long
SalinData_dari_WsTerpilih = False
If wShtTujuan Is Nothing Then Exit Function
If wShtSumber Is Nothing Then Exit Function
With wShtTujuan
lRangeTujuanSalinanData = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End With
With wShtSumber
'https://masoperator.blogspot.com
If .FilterMode Then .ShowAllData
lBarisAkhir = .Range("A" & .Rows.Count).End(xlUp).Row
lKolomAkhir = .Cells(1, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(2, 1), .Cells(lBarisAkhir, lKolomAkhir)).Copy
wShtTujuan.Range("A" & lRangeTujuanSalinanData).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
SalinData_dari_WsTerpilih = True
End Function

Function SalinData_dari_WbTerpilih(wShtTujuan As Worksheet, sDirektoriSumber As String, bFilePertama As Boolean) As Boolean
Dim lGaring As Long, wWrkBookSumber As Workbook, sNamaWbSumber As String, bTerbuka As Boolean
SalinData_dari_WbTerpilih = False
'https://masoperator.blogspot.com
If wShtTujuan Is Nothing Then Exit Function
If Len(sDirektoriSumber) < 5 Then Exit Function
lGaring = InStrRev(sDirektoriSumber, Application.PathSeparator)
If lGaring = 0 Then Exit Function
sNamaWbSumber = Mid(sDirektoriSumber, lGaring + 1)
bTerbuka = True
On Error Resume Next
Set wWrkBookSumber = Workbooks(sNamaWbSumber)
If wWrkBookSumber Is Nothing Then
bTerbuka = False
Set wWrkBookSumber = Workbooks.Open(sDirektoriSumber, False, True)
End If
'https://masoperator.blogspot.com
On Error GoTo 0
If Not wWrkBookSumber Is Nothing Then
lGaring = 0
With wWrkBookSumber
If SalinData_dari_WsTerpilih(wShtTujuan, Worksheets(1)) Then
lGaring = lGaring + 1
End If
SalinData_dari_WbTerpilih = lGaring > 0
If Not bTerbuka Then
.Close False
End If
End With
'https://masoperator.blogspot.com
Set wWrkBookSumber = Nothing
End If
Application.StatusBar = False
End Function

Sub SalinData(wShtTujuan As Worksheet, vWrkBookSumberData As Variant)
Dim lBanyaknyaFile As Long
With Application
.ScreenUpdating = False
.Cursor = xlWait
End With
If IsArray(vWrkBookSumberData) Then
For lBanyaknyaFile = LBound(vWrkBookSumberData) To UBound(vWrkBookSumberData)
Call SalinData_dari_WbTerpilih(wShtTujuan, CStr(vWrkBookSumberData(lBanyaknyaFile)), lBanyaknyaFile = LBound(vWrkBookSumberData))
Next lBanyaknyaFile
Else
'https://masoperator.blogspot.com
Call SalinData_dari_WbTerpilih(wShtTujuan, CStr(vWrkBookSumberData), True)
End If
With wShtTujuan
.Parent.Activate
.Activate
.Range("A2").Select
End With
With Application
.StatusBar = False
.Cursor = xlDefault
.ScreenUpdating = True
End With
'https://masoperator.blogspot.com
End Sub

Sub CariDataImport()
Dim vWrkBookSumberData As Variant
'https://masoperator.blogspot.com
vWrkBookSumberData = "*.xls;*.xlx;*.xlsm (*.xls*),*.xls*"
vWrkBookSumberData = Application.GetOpenFilename(vWrkBookSumberData, 1, "Pilih File Sumber >>", , True)
If Not IsArray(vWrkBookSumberData) Then Exit Sub
UserForm1.TextBox1 = vWrkBookSumberData(1)
End Sub

Sub ProsesImport()
Dim vWrkBookSumberData As Variant
Set vWrkBookSumberData = UserForm1.TextBox1
'https://masoperator.blogspot.com
SalinData ThisWorkbook.Sheets("Data Siswa"), vWrkBookSumberData
MsgBox "Proses Import Data Berhasil...", vbInformation, " Aplikasi Excelku"
Unload UserForm1
End Sub


2) Kode/Script macro untuk userform :

Kode/Script Macro untuk Userform

Private Sub UserForm_Initialize()
'https://masoperator.blogspot.com
Me.TextBox1.SetFocus
End Sub

Private Sub CommandButton1_Click()
'https://masoperator.blogspot.com
Call CariDataImport
End Sub

Private Sub CommandButton2_Click()
'https://masoperator.blogspot.com
If Me.TextBox1 = "" Then
MsgBox ("INFO :" & Chr(13) & _
"Tentukan Lokasi File Sumber Dulu!!!"), vbInformation, "  Mas Operator"
Me.TextBox1.SetFocus
Exit Sub
End If
Call ProsesImport
End Sub

Private Sub CommandButton3_Click()
'https://masoperator.blogspot.com
If MsgBox("KONFIRMASI :" & Chr(13) & _
    "Yakin Ingin Membatalkan Import Data Siswa???", vbExclamation + vbYesNo, "  Mas Operator") = vbYes Then
    Unload Me
        Else
        Me.TextBox1.SetFocus
        Exit Sub
End If
End Sub

Jika sudah simpan dokumen tadi, jangan lupa simpan dalam format *.xlsm (Excel Macro-Enabled Workbook.

2. Buat dokumen/file baru yang nantinya akan kita jadikan sebagai file induk dari data yang akan kita import ke dalam aplikasi kita tadi. Pada dokumen baru yang akan kita jadikan sebagai dokumen/file induk dari data yang akan kita import buat sebuah deret data seperti pada file aplikasi kita yang sudah kita buat tadi, dan ingat data tersebut dibuat pada Sheet1 juga, untuk nama Sheet boleh diubah ataupun tidak (masih default/Sheet1), dan contoh hasilnya seperti pada gambar di bawah ini:

Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain

Jika sudah simpan dokumen tadi, untuk nama bebas dan format atau ekstensinya adalah format ekstensi file excel pada umumnya (*.xlsx).

Jika semuanya dilakukan dengan benar, maka akan seperti pada video di bawah ini:


Demikian artikel mengenai Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain, mudah-mudahan apa yang sudah Saya sampaikan pada kesempatan kali ini bisa bermanfaat untuk kita semuanya. Sekian, terimakasih, dan Salam Mas Operator!!!.

Post a Comment for "Macro VBA Excel : Contoh Import Data Dari File (WorkBook) Lain"