Koneksi Visual Basic dengan Excel

Visual basic dapat membaca dan menulis informasi dari dan ke worksheet excel bahkan dapat melaksanakan perintah excel seperti merobah lebar column, memilih jenis huruf, mengatur border dll.

Untuk membuat koneksi Visual basic dengan excel dapat dilakukan dengan sangat mudah sehingga anda dengan mudah dapat menampilkan laporan keuangan dari aplikasi database visual basic ke dalam worksheet excel mulai dari form, laporan periodik, rugilaba, neraca bahkan grafik dll. Sebaliknya anda dapat mengimport data dari workseet excel ke database. 

Berikut ini adalah cara membuat koneksi visual basic ke excel untuk membuka file tamplate yang telah disediakan dan selanjutnya anda dapat menuliskan informasi pada worksheet tersebut

Membuat koneksi

      Dim vExcel As Excel.Application

Dim No, tbatal, tlunas, Tajt

No = 0

tbatal = 0

tlunas = 0

tajt = 0 

Dim startRow

Membuka aplikasi Excel dengan mengalokasikan memori untuk aplikasi excel.

      Set vExcel = CreateObject(“Excel.Application”)  

Membuka file tamplate yang telah disediakan.   

      vExcel.Workbooks.Add (App.Path & “\namafile.xlt”)

Mengaktifkan Worksheet excel

     vExcel.Visible = True

Menentukan windows excel ditampilkan maksimum

      vExcel.WindowState = xlMaximized   


Mengatur lebar Column misalnya column A akan di set menjadi 30

   vExcel.Columns(“A”).ColumnWidth = 30

Menulis informasi ke dalam worksheet 

  With vExcel.ActiveSheet

  •         .Cells(1, 1).Value = MyCom
  •         .Cells(2, 1).Value = MyAddr
  •         .Cells(3, 1).Value = “LAPORAN PENGELUARAN KAS”
  •         .Cells(4, 1).Value = “PERIODE : ” & Format(DrTgl, “dd-MMM”) & ” s/d ” & Format(SdTgl, “dd-MMM-YYYY”)
  •         .Cells(6, 1).Value = “No”
  •         .Cells(6, 2).Value = “Voucher”
  •         .Cells(7, 2).Value = “Nomor”
  •         .Cells(7, 3).Value = “Tanggal”
  •         .Cells(6, 4).Value = “Chk/Giro”
  •         .Cells(7, 4).Value = “Nomor”
  •         .Cells(7, 5).Value = “Efektif”
  •         .Cells(6, 6).Value = “Rek”
  •         .Cells(6, 7).Value = “KodeSpl”
  •         .Cells(6, 8).Value = “Jumlah”
  •         .Cells(6, 9).Value = “Keterangan”

dan seterusnya …..

Dari cuplikan coding di atas anda telah mendapatkan header laporan pengeluaran kas yang selanjutnya anda tinggal mengisikan detail dari database yang telah tekoneksi melalui kodesi Ado dengan recordsed rs  sbb

        N = 1

       startRow

        Do While Not rs.EOF

            ‘Cells(Baris,Kolom)

            .Cells(startRow + N, 1).Value = N

            .Cells(startRow + N, 2).Value = rs!Voucher

            .Cells(startRow + N, 3).Value = rs!tanggal

            .Cells(startRow + N, 4).Value = rs!chkNo

            .Cells(startRow + N, 5).Value = rs!efektif

            .Cells(startRow + N, 6).Value = Left(rs!account, 6)

            .Cells(startRow + N, 7).Value = rs!kodespl

            .Cells(startRow + N, 8).Value = rs!Jumlah

            .Cells(startRow + N, 9).Value = rs!Ket

          ‘ mendapatkan  data yang telah jatuh tempo dan yang belum jatuh tempo

           if rs!batal then

                  tbatal = tbatal + 1

         else

            If rs!efektif <= Date Then
                tlunas = tlunas + rs!Jumlah
            Else
                Tajt = Tajt + rs!Jumlah
            End If

          End If
            rs.MoveNext
            N = N + 1
         Loop

dan seterusnya anda tinggal membuat bagian penutup dari laporan ….

24 Tanggapan

  1. Bos, bisa kasi contoh 1 project bikin COM add in buat excel gak? gw lg pengen belajar COM add in buat excel tapi gak tau source yg bagus buat mulai dari mana neh…ditunggu ya :p

    ZB :
    Ma’af ya!. ngak punya

  2. bro, aku bingung buat macro sbb:
    apabila cell A2 menunjukkan tanggal 08-08-2008
    maka range B1 s.d D5 dihapus.
    minta tolong programnya ya bro..
    .
    thanks

  3. saya masih belum pernah belajar visbac, tapi saya pingin bertanya bisakah saya membuat soal di visbac lantas setiap jawaban siswa terekam di excel sehingga saya dapat mengadakan analisis terhadap jawaban siswa tersebut. kalau bisa dengan senang hati jika diberikan caranya.
    (barusan saya nginstal visbac 6, tapi belum bsa makenya)
    trims

    Zb:
    Sangat bisa, pelajari dulu. Bila telah ditemukan masalah yang spesifik baru nanya? ok.

  4. bozz,, isa tolong gmn cranya buat pic control yang sourcenya dari SQL…!!!!

    Blz yaw bozzz..

    Thanx

  5. bos tolongbisa kirimin komponen isam.soalnya aku lagi ngelink tapi gak punya komponen isam.
    klo bsa sama kasih tao cara ngelink file MS.Excel ke Visual Basic soalnya aku belum terlalu ngerti.

    lezz bosss.key

  6. boss mo nanyak gimana caranya kita bisa tahu jumlah sheet yang ada pada file excel yang datanya akan kita ambil?terima kasih atas infonya

    Zb:
    Yang saya tahu sheet Excel mempunyai nama. dapat berupa nomor seri 1,2 dst a, b dst atau apa saja. Saya tidak pernah menghitung jumlah sheet excel karena saya selalu memberi nama sheet sesuai isinya misalnya file Cashflow xxx dengan nama Sheet “Mdr Jan08″ untuk data Cashflow Bank Mandiri Bulan Januari 2008 dst. Karena itu saya tidak perlu berapa jumlah sheet yang ada dalam file excel.

  7. saya sdh bikin project menggunakan VB dan konek ke Excel, tapi setiap kali terhubung ke excel enggak bisa nge save dari VB, jadi setiap habis entry melalui VB dan mau entry baru lagi (kelanjutannya) harus disave dan di close dulu.
    Kasih tau dong perintah nge save dari VB dan gak perlu lagi close excel.
    Thx

  8. Tulungin dunk…..
    Aplikasi saya dah jalan yang perlu saya lengkapi nyambung ke excel, open file , close, save dengan aplikasi. aplikasi dah di exit tapi di task manager masih running tuh gimana ya…

  9. Jenjang saya S1 Akuntansi 2007, namun saya suka membuat program2 or aplikasi2 yg lain (1/2 IT). Saat ini saya lagi membuat Aplikasi Laporan Keuangan (dari harian kas hingga laporan audit) dengan menggunakan VB6, dimana output/inputnya dari Microsoft Excell (bantuan macro excel). Saya membutuhkhan bimbingan dari sapa aja yg bisa membantu masalah saya. Masalah saya adalah :
    Pada saat input melalui combobox (dengan pilihan BOXnya antar sheet1, sheet2, dst…) saya tidak bisa meng-Link atau menampilkan apa yg sudah saya input melalui VB6. exp: perintah activeworkbook / activeworksheet.sheet1nya ga berfungsi.
    Saya harap sapa saja yg membantunya, saya akan memberikan sampel gratis laporan keuangan lengkap dari harian kas hingga laporan keuangan >> vn_aldo83@yahoo.com. Thanks B4…

  10. OK. BOS…
    Thx Ilmunya….. mantap dech…

  11. Buagus bener tutornya….

    Mampir dong ke blog sy, http://bliwayan.wordpress.com/

    TQ

  12. bos ceritanya gn ni bos…g pgn data di 1 file misal di B2 …nah tuh file di B2 kan nyambung sama yang file laen di C6 tuh gmn caranya y bos biar klo misal file di B2 g ganti,tar file di c6 itu iktin yang B2 gmn si bos tolong y bos tq

  13. Sy mau nanya.. :) hmm kalo dari excel, bisa gak sy jalankan macro pake timer ? gimana caranya ? kalo dari excel, sy gak liat ada object timer di toolbox nya.gimana cara memunculkan yah ? mohon bantuannya. Thx :)
    zb:
    Ma’af saya tidak pernah menggunakannya, mungkin karena saya juga tidak tahu!…

  14. mas ge mna cara mengkoneksi sensor ke aplikasi dengan pemograman Visual Basic 6.0
    cos saya lgi ngerjaen tugas akhir

    Zb:
    Saya kurang memahami sensor yang kamu maksud. Untuk peralatan digital seperti scanner atau alat ukur digital lainya yang mendukung pemrograman VB biasaya menyertakan source code pada buku manualnya atau sekurang-kurang command list yang digunakan pada peralatan tersebut.

  15. Bos, aku mau nanya niey. Aku ada kolom kode_barang, nama_barang, harga_lama, dan harga_baru. Truz aku buat text box dari nama2 kolom itu dengan tujuan setiap aku masukkan kode_barang maka otomatis nama_barang,harga_lama dan harga_baru muncul di text box tersebut. Sehingga memudahkan untuk melakukan perubahan (edit) data harga. Script untuk menampilkan otomatis ke text box nama_barang, harga_lama, dan harga_baru dengan hanya memanggil kode_barang gmn mas? Aku mau pake VBA. Datanya dari Excell.
    Thanks yaa…

    ZB:
    Aniez!… Kamu belajarnya terlalu terburu-buru. Belajarlah dari awal secara bertahap. Bila kamu lakukan secara bertahap kamu takan pernah menemukan masalah seperti ini.

    Juga penggunaan sistem penyimpanan data. Coba kamu pelajari beberapa sistem basis data agar kamu tidak menggunakan Excel untuk itu karena excel adalah aplikasi serba guna yang tidak diperuntukan untuk itu. Biasanya Excel hanya digunakan untuk menampung hasil pengolahan data (report).

  16. gak bisa eui, tanya donk kalau mau nulis ke excel gimana caranya.

    cara diatas selalu error

    Zb:
    Bila anda yakin tidak ada yang terlewatkan atau yang salah ketik, periksa pada VB anda melalui Menu Pronject – Reference lalu anda microsoft excel v? library ok!.

  17. Saya pensiunan, krn nganggur trus diangkat jadi pengurus RW. Saya lg bikin program ngolah data penduduk. pake excel 2003.
    pada worksheet saya ada 3 sheet ( X,Y danZ)
    pada setiap sheet X dan Y di column A dan B ada master data misal di sheet X pada col A datanya XA1 s/d XA12 dan di colum B datanya XB1 s/d XB12. demikian juga di sheet Y ada YA1 s/d YA12 dan YB1 s/d YB12. Masalahnya adalah bagmn caranya memindahkan data dari sheet Y ke sheet Z bila pada sheet Z yang semula kosong menjadi terisi ketika secara acak pada cell row 1 di col A dientry data yang sama dengan data pada salah satu data yang ada pada sheet Y di col A, maka di sheet Z col B row 1 akan terisi salah satu data yang datanya valid (if ZA?=YA?, maka ZB?=YB?). Yang saat ini sdh sy lakukan adalah menggunakan fungsi “IF”. Namun fungsi ini hanya mampu memproses 8 items saja, padahal saya ingin select semua data (12 items). Pleas help me yaaa. Terima kasih pencerahannya

    ZB:
    Coba anda gunakan fungsi VLOOKUP dan HLOOKUP

  18. Bos, saya lagi nyari buku Visual basic dengan data base exel, judul bukunya apa trus pengarang nya siapa, terima kasih atas info nya

    ZB:
    Saya tidak tahu ada buku tersebut dan saya berfikir tidak akan ada orang yang akan menulis buku tersebut karena Excel bukanlah aplikasi database walaupun punya fasilitas pengolahan database.

  19. pak mohon bantuan tutornya aku belum ngerti caranya, list di atas. saya minta yang lengkap atau download hasilnya buat contoh latihan saya. kirim ke emailnya saya ya pak. makasih sebelunya. karena saya mau bikin laporan harian di tempat kerjaan saya

    ZB:
    Seharusnya kamu berusaha melanjutkannya, karena dengan demikian kamu dapat mengerti. Dalam pemrograman mencoba sendiri itu adalah suatu keharusan.

  20. tanya :
    untuk koneksi visual basic dengan ms office 2007 di excelnya gimana caranya y
    mohon pencerahannya

    ZB:
    Saya kebetulan belum mencoba, namun saya pikir tidak ada masalah karena yang bekerja adalah project referece office(nn). Namun kalau memang tidak bisa anda harus install excel 0ffice 2003 untuk anda manfaatkan sebagai object saja sementara anda tetap menggunakan excel 2007. Kalau untuk Vista VB6 memang sudah tidak disupport lagi. Artinya anda harus tinggalkan VB6.

  21. kalo gak ada aplikasi excel yang terinstall pada kompi client gimana? bisa running gak coding tadi?

    ZB: Tidak?…

  22. Bisakah saya menggunakan userform-nya macro excel tapi terhubung dng databasenya access (file mdb) ?. Tolong bantuannya?…

    ZB: Mohon ma’af saya belum pernah mencobanya?…

  23. bos,saya pgn data yang ada (msial di sheet1 range a2:b19) di tampilkan di userform vba nya,,
    caranya gmn yah?apakah harus di jadiin image dulu?
    tlg bantuan nya
    thanx
    ZB:
    Ma’af saya kurang memahami apa yang anda maksud. Soalnya saya tidak pernah menggunakan sheet sebagai pangkalan data dalam Visual Basic.

  24. mau ikutan nanya dunk,,,
    aq mau bikin aplikasi vb, yaitu ngitung regresi dari suatu kumpulan data.nah aq mau ambil beta(parameternya) dari excel (misal cell B34),tapi perhitungan selebihnya dilakukan dalam visual basic 6. bagaimana tuh caranya?
    mohon bantuannya,,,
    terimakasih sebelumnya

    ZB:
    Anda teliti lagi contoh yang ada, disana telah diberikan cara membaca data dari worksheet excel?…

Tinggalkan Balasan