Belajar VB-Excel_ Beberapa Contoh Kode.pdf

13
BELAJAR VBEXCEL Sabtu, 07 Maret 2009 Beberapa Contoh Kode AUTO RUN Ada beberapa cara untuk membuat macros yang kita buat berjalan secara otomatis ketika pertama kali membuka workbook. Yang pertama adalah Auto Open Method, yang diletakkan di modules, kedua adalah Workbook Open Method, yang diletakkan di pada obyek Workbook (lihat penjelasan pada langkah 3). Dua Contoh kode berikut akan menampilkan pesan “hi” ketika Workbook pertama kali dibuka. Sub Auto_Open( ) Msgbox “hi” End Sub Private Sub Workbook_Open( ) Msgbox “hi” End Sub MENGHITUNG ROWS, COLUMNS DAN SHEET Kode berikut digunakan untuk menghitung berapa jumlah rows (baris) atau columns(kolom) yang telah kita sorot dengan kursor. Sub Hitung( ) hitung_baris = Selection.Rows.Count hitung_kolom = Selection.Columns.Count MsgBox hitung_baris & " " & hitung_kolom End Sub Sub hitung_sheet( ) hitung_sheet = Application.Sheets.Count Msgbox hitung_sheet End Sub MENGKOPI RANGE Contoh berikut akan mengkopi range A1 sampai A3 ke 0 Lainnya Blog Berikut» [email protected] Dasbor Kelu

Transcript of Belajar VB-Excel_ Beberapa Contoh Kode.pdf

  • BELAJARVBEXCEL

    Sabtu, 07 Maret 2009

    Beberapa Contoh Kode

    AUTORUNAda beberapa cara untuk membuat macros yang kita

    buat berjalan secara otomatis ketika pertama kalimembukaworkbook. Yang pertama adalah Auto OpenMethod, yang diletakkan di modules, kedua adalahWorkbookOpenMethod,yangdiletakkandipadaobyekWorkbook(lihatpenjelasanpadalangkah3).DuaContohkode berikut akan menampilkan pesan hi ketikaWorkbookpertamakalidibuka.

    SubAuto_Open()

    Msgboxhi

    EndSub

    PrivateSubWorkbook_Open()

    Msgboxhi

    EndSub

    MENGHITUNGROWS,COLUMNSDANSHEETKode berikut digunakan untuk menghitung berapa

    jumlahrows (baris)ataucolumns(kolom)yang telahkitasorotdengankursor.

    SubHitung()

    hitung_baris=Selection.Rows.Count

    hitung_kolom =

    Selection.Columns.Count

    MsgBox hitung_baris & " " &

    hitung_kolom

    EndSub

    Subhitung_sheet()

    hitung_sheet =

    Application.Sheets.Count

    Msgboxhitung_sheet

    EndSub

    MENGKOPIRANGEContohberikutakanmengkopirangeA1sampaiA3ke

    0 Lainnya BlogBerikut [email protected] Dasbor Keluar

  • D1sampaiD3SubKopi_Range()

    Range (A1:A3).Copy

    Destination:=Range(D1:D3)

    EndSub

    WAKTUSEKARANGContohberikutakanmenampilkanwaktupadasaatini

    Subsekarang()

    Range(A1)=Now

    EndSub

    MENGETAHUIPOSISISELYANGSEDANGAKTIFSubposisi()

    baris=ActiveCell.Row

    kolom=ActiveCell.Column

    Msgboxbaris&,&kolom

    EndSub

    MENGHAPUSBARISYANGKOSONGSubhapus_baris_kosong()

    Rng=Selection.Rows.Count

    ActiveCell.Offset(0,0).Select

    Fori=1ToRng

    IfActiveCell.Value=""Then

    Selection.EntireRow.Delete

    Else

    ActiveCell.Offset(1,0).Select

    EndIf

    NextI

    EndSub

    MenebalkandanMewarnaiHuruf(Font)Contoh berikut akan menebalkan dan memberi warna

    merahpadahurufdimanaselsedangaktif.Subtebal_merah()

    Selection.Font.Bold=True

    Selection.Font.ColorIndex=3

    EndSub

    MENGIRIMKANWORKBOOKMELALUIEMAILSubemail()

    ActiveWorkbook.SendMail recipients:=

    [email protected]

    EndSub

  • FUNGSIEXCELMenggunakanfungsibawaanExceldalamVBEhampir

    sama dengan menggunakannya dalam Excel. Misalfungsi round untuk membulatkan sebuah angka, dalamspreadsheetakanterlihatsepertiini

    =round(1.2367,2)

    Dalam VBE Anda cukup menggunakan Applicationkemudiandisusulfungsiyangakandipakai.

    Subbulat()

    ActiveCell =

    Application.Round(ActiveCell,2)

    EndSub

    MENGHAPUSNAMANAMARANGEContoh berikut akan menghapus semua namanama

    rangedidalamworkbookAndaSubhapus_nama_range()

    DimNameXAsName

    ForEachNameXInNames

    ActiveWorkbook.Names(NameX.Name).Dele

    te

    NextNameX

    EndSub

    LAYARBERKEDIPProgram dalam macros yang sedang berjalan dapat

    membuat layar berkedipkedip, untuk menghentikannyaAndadapatmenyisipkankodeberikut.

    Application.ScreenUpdating=False

    MENUJURANGETERTENTUUntukmenuju suatu range tertentu, kodekode berikut

    dapatdigunakan.Application.GotoReference:=A1

    Atau,Range(A1).Select

    MENUJUSHEETTERTENTUSedangkanuntukmenujuworksheet tertentu, gunakan

    kodekodeberikut.Sheets(1).Select

    AtauSheet1.Select

    UntukmenujuSheetterdepan(nomor1)

  • Sheet(coba).Select

    UntukmenujuSheetbernamacobaMENYEMBUNYIKANWORKSHEET

    KodeberikutberfungsiuntukmenyembunyikanSheet1Sheet1.Visible=xlSheetVeryHidden

    Pengguna tidak dapat membuka sheet yang telahdisembunyikandengancaraini,hanyadengankodeVBEsheetdapatdibukakembali.

    INPUTBOXKodeberikutbergunauntukmemunculkanInputBox

    InputBox(MasukkanNama)

    MENYISIPKANBARISDANKOLOMKodeberikutakanmenyisipkanbarisdiatasrangeA1,

    Range(A1).Select

    Selection.EntireRow.Insert

    Sedang yang berikut akan menyisipkan satu kolomdisampingkirirangeA1,

    Range(A1).Select

    Selection.EntireColumn.Insert

    MENGATURULANGUKURANRANGESelection.Resize(7,7).Select

    MEMBERINAMARANGESelection.Name=nama

    MENYIMPANFILEKode berikut berguna untuk menyimpan file tanpa

    memberinama,ActiveWorkbook.Save

    SedangkanbilaAndahendakmemberinama(SaveAs),gunakankodeberikut,

    ActiveWorkbook.SaveAs

    Filename:=C:\coba.xls

    PENJADWALANKadangkadang kita hendak menjadwalkan sebuah

    tugas kepada Excel, contohnya menyimpan file padajamjam tertentu. VBE dapat melakukannya denganmenggunakan fungsi Application.OnTime. Sebagaicontoh, kode dibawah ini akan menjalankan prosedurSimpan( ) pada jam 12:00 dan 16:00, prosedurSimpan()sendiriberisiperintahuntukmenyimpanfile,

    Subtugas()

  • Application.OnTime

    TimeValue("12:00:00"),"Simpan"

    Application.OnTime

    TimeValue("16:00:00"),"Simpan"

    EndSub

    SubSimpan()

    ActiveWorkbook.Save

    EndSub

    Bila Anda hendak merubah jamnya, missal jam10:03:05, maka rubah TimeValue menjadiTimeValue(10:03:05).Sedangkan bila Anda hendakmelakukannya satu jam

    setelah prosedur tugas( ) dijalankan maka rubahlahkodenyasepertidemikian,Subtugas()

    Application.OnTimeNow+

    TimeValue("01:00:00"),"Simpan"

    EndSub

    PerhatikanpenambahankataNow.Kodekodediatasbekerja bila disimpan dalam module, bula Anda inginmenyimpannya di dalam Sheet1 (atau worksheetmanapun), maka rubahlah Simpan menjadiSheet1.Simpan

    Diposkan oleh Ben

    Label: Excel, Macro, VB, VBA, Visual Basic, Visual Basic ApplicationVB

    25 komentar:

    Wawan mengatakan...

    Thanks penjelasannya sangat berharga bagi saya. saya pengentahu cara menjumlahkan dengan Funsi "SUM" untuk range yangtidak tetap. terima kasih

    22 Agustus 2009 01.18

    Wawan mengatakan...

    Thanks atas penjelasannya itu sangat berharga bagi saya. sayapengen tahu cara menggunakan fungsi "SUM" pada range yangtidak tetap

    22 Agustus 2009 01.20

    Sandy mengatakan...

    Makasih Gan.. sgt bermanfaat.. mohon copy Pastenya ya..??

    17 Agustus 2011 18.53

  • Sandy mengatakan...

    TQ ya Gan.. sgt bermanfat..buat saya yg pemula..Mohon izin Copy Fastenya..!!

    17 Agustus 2011 18.54

    Ben mengatakan...

    U welcome GAn....

    18 Agustus 2011 00.40

    Anonim mengatakan...

    mas ben kenapa tidak dilanjutkan postingannya.saya sudah mutermuter mencari tutorial vbexcel, donlot sanasini sampai capek, hasilnya gak mudeng juga cara kerja exceldan vb.setelah ketemu blognya mas ben, saya sudah tobat jalanjalan digoogle.caranya mas ben memberi pencerahan pas mantab.saya langsung mudeng, dan ketagihan ngutak atik excel lagi.lanjutkan mas ..saya sudah add ym sampeyan, mungkin suatu saat saya bisamenyapa kalau ketemu hehehee"pak guru!!...terima kasih share ilmunya."(berteriak sambilmembungkuk 3x)

    31 Agustus 2011 21.25

    Ben mengatakan...

    karena kesibukan di kantor saya belum sempat nambah tulisanlagi mas....

    mudah2an bisa nambahlagi..berdasarkan pengalaman sayakotakkatik macro excel di kantor...

    oke mas, nanti saya accept invite nya di ym. belum buka ym laginih..

    waduh jangan panggil saya guru mas, saya gak bakat jadi guru.dulu pernah coba jadi guru sekolah selama 8 bulan. tapi gak bisamenguasai kelas...hehe

    jadi penulis blog aja lebih enak :D

    1 September 2011 05.57

    Rahmat Hidayat mengatakan...

    thnks gan, mskh ilmunya, numpang copy paste.

    18 April 2012 05.06

    Anonim mengatakan...

    Mas, boleh saya tanya...Saya punya SheetA dan SheetB.Range B10:B12 sheetB terisi data dari range B10:B12 SheetA.Pertanyaanya, bagaimana kode VBA nya, Jika B10 sheetA disi data, maka baris 1112 sheetB hidden. Jika B11 SheetA diisi data, maka baris 12 SheetB hidden.tolong dijawab ya

    12 Januari 2013 18.31

  • Ben mengatakan...

    if sheetA.range("B10") "" then

    sheetb.rows("11:12").hidden = true

    elseif sheetA.range("b11") "" then

    sheetb.rows(12).hidden = true

    end if

    13 Januari 2013 04.53

    Agung Bayunanto mengatakan...

    MAS minta pencerahan untuk membuat form agar dapatmenampilkan data yang sudah diinpuntkan bagaiamana masfungsinya misal kita masukkan nomor induk siswa sehingga dapatmenampilkan data siswa dalam sebuah form...sebelumnyaterima kasih penjelasan bisa di kirim juga [email protected] makasih mas

    29 Januari 2014 22.36

    Agung Bayunanto mengatakan...

    MAS minta pencerahan untuk membuat form agar dapatmenampilkan data yang sudah diinpuntkan bagaiamana masfungsinya misal kita masukkan nomor induk siswa sehingga dapatmenampilkan data siswa dalam sebuah form...sebelumnyaterima kasih penjelasan bisa di kirim juga [email protected] makasih mas

    29 Januari 2014 22.37

    Ben mengatakan...

    data yag sudah diinputkan ada di sheet excel gan???

    kalo ada di sheet bisa gini gan...misal ada data di sheet1 cell A1

    mau dimasukan ke textbox1 di form1 gini code nya gan

    Form1.Sheet1.Value = Sheet1.range("A1")

    30 Januari 2014 18.07

    Dilla Chaniago mengatakan...

    Pak, saya mau tanya tanya...Saya punya SheetA dan SheetB.(Cell A1 sheetA) terisi data dari (Cell A1:A2:A3 SheetA.)

    Bagaimana cara SheetA memanggil SheetB ? dan sebaliknya ?

    Mohon bantuannya pak ?terimakasi

    3 Februari 2014 21.39

    Ben mengatakan...

    saya sudah jawab via email yah..."memanggil" itu apa menampilkan sheet B atau emmasukkandata dari sheet B ke sheet A

  • terimakasih

    7 Februari 2014 00.42

    Sapu Jagad mengatakan...

    Mas.mohon bantuuanya...Saya ingin membuat Command Button Laporan di Form. ketika diklik Commond Button Laporan tersebut akan menampilkansheet1 kolom A; Kolom B: kolom F berdasarkan data yang telahdi entry (tapi dalam bentuk print preview)Terima Kasih Mas semoga bantuanya bermanfaat tidak untuksaya tetapi untuk yang lain juga.Bisa di email juga ke [email protected]

    Salam

    23 Februari 2014 21.31

    Ben mengatakan...

    coba pelajari pembahasan tentang masalah mas di link ini mas...

    kalo menurut saya sebelum di print preview, datadata yagn maudi print di kumpulkan di suatu sheet (secara automatis oleh vba)

    baru setelah itu di print preview

    25 Februari 2014 22.35

    Ben mengatakan...

    ini link nya mas...sori lupa.... :)

    http://www.mrexcel.com/forum/excelquestions/80932controldisplayprintpreviewthroughvisualbasicapplicationsnotexcel.html

    25 Februari 2014 22.36

    Anonim mengatakan...

    Mas Ben, Gmn cara memberi warna pada sel/range dengan VB,trims sblmnya...

    27 Maret 2014 10.55

    Ben mengatakan...

    seperti ini contohnya mas

    Range("A1").Interior.Color = 49407

    nanti sel A1 jadi warna orange

    30 Maret 2014 22.47

    SINGKUK Digital.COM mengatakan...

    bagus banget penjelasannya. sy ini blm paham, apa bedanyascript yg dijalankan/dipanggil dengan menggunakan commanbuton dengan tidak menggunakn comman button (yg berjalanotomatis). apakah penempatan scriptnya juga berbeda (dimodule, di sheet, form atau di workbook? trima kasih. tlngemail ke [email protected]

    5 Juni 2014 19.03

  • Poskan Komentar

    Link ke posting ini

    Buat sebuah Link

    dede hidayat mengatakan...

    mas Ben saya pernah melihat aplikasi raport sekolahmenggunakan excel saya tertarik di pungsi printnya di satu sheetbisa membuka sheet lain yang sudah di pilih dengan hanya kliktombol atau tulis angka. Mas Ben mohonpencerahannya....terimakasih.

    21 Juli 2014 18.20

    Ben mengatakan...

    untuk memilih sheet tertentu bisa seperti ini mas, contohnyakita mau buka sheet1

    sheet1.activate

    nah ini dasar dari pengaktifan sheet

    bila pake angka berarti angka itu sebagai indeks. oleh karena ituyang kita pakai

    sheets(index).activate

    misal sheet pertama maka

    sheets(1).activate

    kalo sheet ke dua ya ganti 1 menjadi 2

    21 Juli 2014 19.26

    Ben mengatakan...

    untuk script yang berjalan otomatis misal seperti timer danfungsi ditempatkan di module.

    triger dari script tersebut bisa dari comand button atauapaapun...

    6 Agustus 2014 08.29

    Anonim mengatakan...

    Gan gimana cara bikin tombol save as nya soalnya saya udahcoba tapi gagal terus. minta penjelasannya secara rinci donk..makasih

    1 Oktober 2014 08.40

  • Posting Lebih Baru Posting LamaBeranda

    Langganan: Poskan Komentar (Atom)

    Tetang Blog iniBlog ini berisi tentang tutorialsingkat tentang Makro Excelyang menggunakan bahasapemograman Visual Basic untukpemula. Dengan pengetahuantentang Makro Excel, parapengguna Excel dapatmengoptimalkan penggunaanExcel untuk berbagai aplikasi.Bila ada pertanyaan atau kritikdan saran, pembaca dapatmenghubungi penulis melaluiemail :[email protected] juga menyediakan jasakonsultasi darat ke kantor ataurumah (jakarta, tangerangselatan, depok) bagi pembacayang membutuhkan.

    SalamBen

    Follow@vb_excel 24followers

    Komunitas VBA Excel di

  • FacebookVBA Programmer for Hire

    Daftar TutorialMembuat Fungsi ExcelSendiriBeberapa Contoh KodeMelangkah Lebih JauhMengendalikan RangeMemulai Makro Excel

    Donasi ke Blog ini

    Pesan Sponsor

  • Bolt Modem: Bolt modem byZTE.3

    Find this cool stuff here:http://zocko.it/LDErT

  • SilverSerpentSubwooferYAdapterC...BetterCablesNew$29.95Best$29.95

    TheEndBurtReynolds,Jam...New$49.98Best$13.63

    FromBeginningtoEnd

    New$3.99Best$3.99

    KodiakCuttingToolsKCT166494USAM...KodiakCuttingToo...New$15.99Best$15.99

    Road'sEndOrganicsGlutenFreeShii...Road'sEndOrganic...New$14.28Best$9.99

    PrivacyInformation