Aplikasi Excelku. Selamat datang kembali Sobat Excel, Saya ucapkan banyak-banyak terimakasih kepada Sobat Excel semua yang sudah mengunjungi blog sederhana Saya ini. Pada kesempatan ini Saya akan berbagi sebuah tutorial mengenai cara mengambil (import) data dari workbook lain menggunakan macro VBA Excel.
Tutorial ini Saya ambil dari salah satu Web yang sering juga memposting mengenai tutorial Excel seperti halnya blog Saya ini. Alamat web tersebut adalah : https://www.mtsbmtumbrasanom.id/2017/02/vba-macro-excel-import-file-excel-ke.html, namun pada tutorial ini Saya memodifikasinya agar terlihat lebih pro. Dan berikut ini langkah-langkahnya:
Cara Mengambil (Import) Data Dari Workbook Lain Menggunakan Macro VBA Excel
1. Siapkan sebuah sheet sebagai lokasi untuk menempatkan hasil copyan data dari workbook lain, pada contoh ini Saya menggunakan sheet1 kemudian Saya mengubah namanya menjadi Siswa, untuk lebih jelasnya silahkan perhatikan gambar di bawah ini:
Seperti yang ditampilkan pada gambar di atas, sheet1 Saya ubah namanya menjadi Siswa, kemudian di dalam sheet Siswa tersebut Saya membuat sebuah deret data dimana dimasing-masing kolom isinya adalah :
- Nomor;
- NIS;
- NISN;
- Nama Siswa;
- Jenis Kelamin; dan
- Tempat, Tanggal Lahir; dan
- Alamat
Option Explicit'https://aplikasiexcelku.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://aplikasiexcelku.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://aplikasiexcelku.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://aplikasiexcelku.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://aplikasiexcelku.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://aplikasiexcelku.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://aplikasiexcelku.blogspot.comEnd SubSub CariDataImport()Dim vWrkBookSumberData As Variant'https://aplikasiexcelku.blogspot.comvWrkBookSumberData = "*.xls;*.xlx;*.xlsm (*.xls*),*.xls*"vWrkBookSumberData = Application.GetOpenFilename(vWrkBookSumberData, 1, "Pilih File Sumber >>", , True)If Not IsArray(vWrkBookSumberData) Then Exit SubFrmImport.Path = vWrkBookSumberData(1)End SubSub ProsesImport()Dim vWrkBookSumberData As VariantSet vWrkBookSumberData = FrmImport.Path'https://aplikasiexcelku.blogspot.comSalinData ThisWorkbook.Sheets("SISWA"), vWrkBookSumberDataMsgBox "Proses Import Data Berhasil...", vbInformation, " Aplikasi Excelku"Unload FrmImportEnd Sub
Private Sub UserForm_Initialize()'https://aplikasiexcelku.blogspot.comMe.Path.SetFocusEnd SubPrivate Sub CmdCari_Click()'https://aplikasiexcelku.blogspot.comCall CariDataImportEnd SubPrivate Sub CmdImport_Click()'https://aplikasiexcelku.blogspot.comIf Me.Path = "" ThenMsgBox ("INFO :" & Chr(13) & _"Tentukan Lokasi File Sumber Dulu!!!"), vbInformation, " Aplikasi Excelku"Me.Path.SetFocusExit SubEnd IfCall ProsesImportEnd SubPrivate Sub CmdCancel_Click()'https://aplikasiexcelku.blogspot.comIf MsgBox("KONFIRMASI :" & Chr(13) & _"Yakin Ingin Membatalkan Import Data Siswa???", vbExclamation + vbYesNo, " Aplikasi Excelku") = vbYes ThenUnload MeElseMe.Path.SetFocusExit SubEnd IfEnd Sub
Post a Comment for "Mengambil (Import) Data Dari Workbook Lain Menggunakan Macro VBA Excel"
Tinggalkan komentar Anda pada kolom komentar di bawah ini :