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.
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:
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:
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 :
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:
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.comFunction SalinData_dari_WsTerpilih(wShtTujuan As Worksheet, wShtSumber As Worksheet) As BooleanDim lRangeTujuanSalinanData As Long, lBarisAkhir As Long, lKolomAkhir As LongSalinData_dari_WsTerpilih = FalseIf wShtTujuan Is Nothing Then Exit FunctionIf wShtSumber Is Nothing Then Exit FunctionWith wShtTujuanlRangeTujuanSalinanData = .Range("A" & .Rows.Count).End(xlUp).Row + 1End WithWith wShtSumber'https://masoperator.blogspot.comIf .FilterMode Then .ShowAllDatalBarisAkhir = .Range("A" & .Rows.Count).End(xlUp).RowlKolomAkhir = .Cells(1, .Columns.Count).End(xlToLeft).Column.Range(.Cells(2, 1), .Cells(lBarisAkhir, lKolomAkhir)).CopywShtTujuan.Range("A" & lRangeTujuanSalinanData).PasteSpecial xlPasteValuesApplication.CutCopyMode = FalseEnd WithSalinData_dari_WsTerpilih = TrueEnd FunctionFunction SalinData_dari_WbTerpilih(wShtTujuan As Worksheet, sDirektoriSumber As String, bFilePertama As Boolean) As BooleanDim lGaring As Long, wWrkBookSumber As Workbook, sNamaWbSumber As String, bTerbuka As BooleanSalinData_dari_WbTerpilih = False'https://masoperator.blogspot.comIf wShtTujuan Is Nothing Then Exit FunctionIf Len(sDirektoriSumber) < 5 Then Exit FunctionlGaring = InStrRev(sDirektoriSumber, Application.PathSeparator)If lGaring = 0 Then Exit FunctionsNamaWbSumber = Mid(sDirektoriSumber, lGaring + 1)bTerbuka = TrueOn Error Resume NextSet wWrkBookSumber = Workbooks(sNamaWbSumber)If wWrkBookSumber Is Nothing ThenbTerbuka = FalseSet wWrkBookSumber = Workbooks.Open(sDirektoriSumber, False, True)End If'https://masoperator.blogspot.comOn Error GoTo 0If Not wWrkBookSumber Is Nothing ThenlGaring = 0With wWrkBookSumberIf SalinData_dari_WsTerpilih(wShtTujuan, Worksheets(1)) ThenlGaring = lGaring + 1End IfSalinData_dari_WbTerpilih = lGaring > 0If Not bTerbuka Then.Close FalseEnd IfEnd With'https://masoperator.blogspot.comSet wWrkBookSumber = NothingEnd IfApplication.StatusBar = FalseEnd FunctionSub SalinData(wShtTujuan As Worksheet, vWrkBookSumberData As Variant)Dim lBanyaknyaFile As LongWith Application.ScreenUpdating = False.Cursor = xlWaitEnd WithIf IsArray(vWrkBookSumberData) ThenFor lBanyaknyaFile = LBound(vWrkBookSumberData) To UBound(vWrkBookSumberData)Call SalinData_dari_WbTerpilih(wShtTujuan, CStr(vWrkBookSumberData(lBanyaknyaFile)), lBanyaknyaFile = LBound(vWrkBookSumberData))Next lBanyaknyaFileElse'https://masoperator.blogspot.comCall SalinData_dari_WbTerpilih(wShtTujuan, CStr(vWrkBookSumberData), True)End IfWith wShtTujuan.Parent.Activate.Activate.Range("A2").SelectEnd WithWith Application.StatusBar = False.Cursor = xlDefault.ScreenUpdating = TrueEnd With'https://masoperator.blogspot.comEnd SubSub CariDataImport()Dim vWrkBookSumberData As Variant'https://masoperator.blogspot.comvWrkBookSumberData = "*.xls;*.xlx;*.xlsm (*.xls*),*.xls*"vWrkBookSumberData = Application.GetOpenFilename(vWrkBookSumberData, 1, "Pilih File Sumber >>", , True)If Not IsArray(vWrkBookSumberData) Then Exit SubUserForm1.TextBox1 = vWrkBookSumberData(1)End SubSub ProsesImport()Dim vWrkBookSumberData As VariantSet vWrkBookSumberData = UserForm1.TextBox1'https://masoperator.blogspot.comSalinData ThisWorkbook.Sheets("Data Siswa"), vWrkBookSumberDataMsgBox "Proses Import Data Berhasil...", vbInformation, " Aplikasi Excelku"Unload UserForm1End Sub
2) Kode/Script macro untuk userform :
Kode/Script Macro untuk Userform
Private Sub UserForm_Initialize()'https://masoperator.blogspot.comMe.TextBox1.SetFocusEnd SubPrivate Sub CommandButton1_Click()'https://masoperator.blogspot.comCall CariDataImportEnd SubPrivate Sub CommandButton2_Click()'https://masoperator.blogspot.comIf Me.TextBox1 = "" ThenMsgBox ("INFO :" & Chr(13) & _"Tentukan Lokasi File Sumber Dulu!!!"), vbInformation, " Mas Operator"Me.TextBox1.SetFocusExit SubEnd IfCall ProsesImportEnd SubPrivate Sub CommandButton3_Click()'https://masoperator.blogspot.comIf MsgBox("KONFIRMASI :" & Chr(13) & _"Yakin Ingin Membatalkan Import Data Siswa???", vbExclamation + vbYesNo, " Mas Operator") = vbYes ThenUnload MeElseMe.TextBox1.SetFocusExit SubEnd IfEnd 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:
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"
Silahkan Tinggalkan Komentar Anda Disini :