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

Meng-kopi Range

Contoh berikut akan meng-kopi range A1 sampai A3 ke D1 sampai D3

Sub Kopi_Range( )

Range (“A1:A3”).Copy Destination:=Range(“D1:D3”)

End Sub

Waktu Sekarang

Contoh berikut akan menampilkan waktu pada saat ini

Sub sekarang( )

Range (“A1”)= Now

End Sub

Mengetahui Posisi Sel yang Sedang Aktif

Sub posisi( )

baris = ActiveCell.Row

kolom = ActiveCell.Column

Msgbox baris & “,” & kolom

End Sub

Menghapus Baris yang Kosong

Sub hapus_baris_kosong( )

Rng = Selection.Rows.Count

ActiveCell.Offset(0, 0).Select

For i = 1 To Rng

If ActiveCell.Value = "" Then

Selection.EntireRow.Delete

Else

ActiveCell.Offset(1, 0).Select

End If

Next I

End Sub

Menebalkan dan Mewarnai Huruf (Font)

Contoh berikut akan menebalkan dan memberi warna merah pada huruf dimana sel sedang aktif.

Sub tebal_merah( )

Selection.Font.Bold = True

Selection.Font.ColorIndex = 3

End Sub

Mengirimkan Workbook melalui Email

Sub email( )

ActiveWorkbook.SendMail recipients:= ”excel@ahoo.c”

End Sub

Fungsi Excel

Menggunakan fungsi bawaan Excel dalam VBE hampir sama dengan menggunakannya dalam Excel. Misal fungsi round untuk membulatkan sebuah angka, dalam spreadsheet akan terlihat seperti ini

= round(1.2367, 2)

Dalam VBE Anda cukup menggunakan Application kemudian disusul fungsi yang akan dipakai.

Sub bulat( )

ActiveCell = Application.Round(ActiveCell, 2)

End Sub

Menghapus Nama-Nama Range

Contoh berikut akan menghapus semua nama-nama range di dalam workbook Anda

Sub hapus_nama_range( )

Dim NameX As Name

For Each NameX In Names

ActiveWorkbook.Names(NameX.Name).Delete

Next NameX

End Sub

Layar Berkedip

Program dalam macros yang sedang berjalan dapat membuat layar berkedip-kedip, untuk menghentikannya Anda dapat menyisipkan kode berikut.

Application.ScreenUpdating = False

Menuju Range Tertentu

Untuk menuju suatu range tertentu, kode-kode berikut dapat digunakan.

Application.Goto Reference:=”A1”

Atau,

Range(“A1”).Select

Menuju Sheet tertentu

Sedangkan untuk menuju worksheet tertentu, gunakan kode-kode berikut.

Sheets(1).Select

Atau

Sheet1.Select

Untuk menuju Sheet terdepan (nomor 1)

Sheet(“coba”).Select

Untuk menuju Sheet bernama “coba”

Menyembunyikan WorkSheet

Kode berikut berfungsi untuk menyembunyikan Sheet1

Sheet1.Visible = xlSheetVeryHidden

Pengguna tidak dapat membuka sheet yang telah disembunyikan dengan cara ini, hanya dengan kode VBE sheet dapat dibuka kembali.

Input Box

Kode berikut berguna untuk memunculkan Input Box

InputBox(“Masukkan Nama”)

Menyisipkan Baris dan Kolom

Kode berikut akan menyisipkan baris diatas range A1,

Range(“A1”).Select

Selection.EntireRow.Insert

Sedang yang berikut akan menyisipkan satu kolom disamping kiri range A1,

Range(“A1”).Select

Selection.EntireColumn.Insert

Mengatur Ulang Ukuran Range

Selection.Resize(7,7).Select

Memberi Nama Range

Selection.Name = “nama”

Menyimpan File

Kode berikut berguna untuk menyimpan file tanpa memberi nama,

ActiveWorkbook.Save

Sedangkan bila Anda hendak memberi nama (SaveAs), gunakan kode berikut,

ActiveWorkbook.SaveAs Filename:=”C:\coba.xls”

Penjadwalan

Kadang-kadang kita hendak menjadwalkan sebuah tugas kepada Excel, contohnya menyimpan file pada jam-jam tertentu. VBE dapat melakukannya dengan menggunakan fungsi Application.OnTime. Sebagai contoh, kode dibawah ini akan menjalankan prosedur Simpan( ) pada jam 12:00 dan 16:00, prosedur Simpan( ) sendiri berisi perintah untuk menyimpan file,

Sub tugas()

Application.OnTime TimeValue("12:00:00"), "Simpan"

Application.OnTime TimeValue("16:00:00"), "Simpan"

End Sub

Sub Simpan()

ActiveWorkbook.Save

End Sub

Bila Anda hendak merubah jamnya, missal jam 10:03:05, maka rubah TimeValue menjadi TimeValue(“10:03:05”).

Sedangkan bila Anda hendak melakukannya satu jam setelah prosedur tugas( ) dijalankan maka rubahlah kodenya seperti demikian,

Sub tugas()

Application.OnTime Now + TimeValue("01:00:00"), "Simpan"

End Sub

Perhatikan penambahan kata “Now”. Kode-kode di atas bekerja bila disimpan dalam module, bula Anda ingin menyimpannya di dalam Sheet1 (atau worksheet manapun), maka rubahlah “Simpan” menjadi Sheet1.Simpan

100 komentar:

Unknown mengatakan...

Thanks penjelasannya sangat berharga bagi saya. saya pengen tahu cara menjumlahkan dengan Funsi "SUM" untuk range yang tidak tetap. terima kasih

Unknown mengatakan...

Thanks atas penjelasannya itu sangat berharga bagi saya. saya pengen tahu cara menggunakan fungsi "SUM" pada range yang tidak tetap

Sandy mengatakan...

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

Sandy mengatakan...

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

Ben mengatakan...

U welcome GAn....

Anonim mengatakan...

mas ben kenapa tidak dilanjutkan postingannya.
saya sudah muter-muter mencari tutorial vb-excel, donlot sana sini sampai capek, hasilnya gak mudeng juga cara kerja excel dan vb.
setelah ketemu blognya mas ben, saya sudah tobat jalan-jalan di google.
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 bisa menyapa kalau ketemu hehehee
"pak guru!!...terima kasih share ilmunya."(berteriak sambil membungkuk 3x)

Ben mengatakan...

karena kesibukan di kantor saya belum sempat nambah tulisan lagi mas....

mudah2an bisa nambahlagi..berdasarkan pengalaman saya kotak-katik macro excel di kantor...

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

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

jadi penulis blog aja lebih enak :D

Rahmat Hidayat mengatakan...

thnks gan, mskh ilmunya, numpang copy paste.

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 11-12 sheetB hidden.
- Jika B11 SheetA diisi data, maka baris 12 SheetB hidden.
tolong dijawab ya

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

Unknown mengatakan...

MAS minta pencerahan untuk membuat form agar dapat menampilkan data yang sudah diinpuntkan bagaiamana mas fungsinya misal kita masukkan nomor induk siswa sehingga dapat menampilkan data siswa dalam sebuah form...sebelumnya terima kasih penjelasan bisa di kirim juga ke agungbayunanto@gmail.com makasih mas

Unknown mengatakan...

MAS minta pencerahan untuk membuat form agar dapat menampilkan data yang sudah diinpuntkan bagaiamana mas fungsinya misal kita masukkan nomor induk siswa sehingga dapat menampilkan data siswa dalam sebuah form...sebelumnya terima kasih penjelasan bisa di kirim juga ke agungbayunanto@gmail.com makasih mas

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")

Unknown 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

Ben mengatakan...

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

terimakasih

Unknown mengatakan...

Mas.mohon bantuuanya...
Saya ingin membuat Command Button Laporan di Form. ketika di klik Commond Button Laporan tersebut akan menampilkan sheet1 kolom A; Kolom B: kolom F berdasarkan data yang telah di entry (tapi dalam bentuk print preview)
Terima Kasih Mas semoga bantuanya bermanfaat tidak untuk saya tetapi untuk yang lain juga.
Bisa di email juga ke sapu.jagad007@gmail.com

Salam

Ben mengatakan...

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

kalo menurut saya sebelum di print preview, data-data yagn mau di print di kumpulkan di suatu sheet (secara automatis oleh vba)

baru setelah itu di print preview

Ben mengatakan...

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

http://www.mrexcel.com/forum/excel-questions/80932-control-display-print-preview-through-visual-basic-applications-not-excel.html

Anonim mengatakan...

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

Ben mengatakan...

seperti ini contohnya mas

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

nanti sel A1 jadi warna orange

SINGKUK Digital.COM mengatakan...

bagus banget penjelasannya. sy ini blm paham, apa bedanya script yg dijalankan/dipanggil dengan menggunakan comman buton dengan tidak menggunakn comman button (yg berjalan otomatis). apakah penempatan scriptnya juga berbeda (di module, di sheet, form atau di workbook? trima kasih. tlng email ke dy_kur@yahoo.com

Unknown mengatakan...

mas Ben saya pernah melihat aplikasi raport sekolah menggunakan excel saya tertarik di pungsi printnya di satu sheet bisa membuka sheet lain yang sudah di pilih dengan hanya klik tombol atau tulis angka. Mas Ben mohon pencerahannya....terimakasih.

Ben mengatakan...

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

sheet1.activate

nah ini dasar dari pengaktifan sheet

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

sheets(index).activate

misal sheet pertama maka

sheets(1).activate

kalo sheet ke dua ya ganti 1 menjadi 2

Ben mengatakan...

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

triger dari script tersebut bisa dari comand button atau apaapun...

Anonim mengatakan...

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

Unknown mengatakan...

gue ngak bisa bilang apa2 lagi kecuali...
Thank u verrrrrrryyyyyyyyy muchhhhh atas artikelnya........

Ben mengatakan...

terimakasih karena sudah membaca mas...semoga bermanfaat

Admin mengatakan...

Mas mau nanya ne..cara menyimpan data yang kita inputkan di sheet1 tampil di sheet2..mhon bntuanny mas

Ben mengatakan...

misal data ada di kolom A sheet 1, mau ditaruh di kolom B sheet2 kodingnya kira2 kayak gini mas

Sheet2.range("B:B") = sheet1.range("A:A")

Admin mengatakan...


mau nanya yang lanjutan yang kemaren mas ben,,
Kodingnya seperti ini...

Sub MasukanData()
Dim NamaPegawai As String
Dim Alamat, Nomor As String

'PILIH SHEET
Sheets("FORM INPUT").Select
Nomor = Range("G1").Text
NamaPegawai = Range("B4").Text
Alamat = Range("C4").Text
'MASUKAN DATA
Sheets("DATABASE").Select
jumlahData = Range("E1").Value
Rows(jumlahData + 2 & ":" & jumlahData + 2).Select
Selection.Copy
Rows(jumlahData + 3 & ":" & jumlahData + 3).Select
ActiveSheet.Paste
Application.CutCopyMode = False
'Masukan data
Range("A" & jumlahData + 3).Select
ActiveCell.FormulaR1C1 = Nomor
Range("B" & jumlahData + 3).Select
ActiveCell.FormulaR1C1 = NamaPegawai
Range("C" & jumlahData + 3).Select
ActiveCell.FormulaR1C1 = Alamat
Sheets("form input").Select
'pesan berhasil
MsgBox "Input Data Berhasil !", vbInformation, "Terimakasih !"
Range("B3:C3").Select
End Sub
Sub simpan()
MasukanData
End Sub

Yang mau saya tanyakan mas Ben, ketika saya input nama pegawai dan alamat pegawai di kolom 4 maka berhasil masuk di sheet Database,,kemudian saya inputkan lagi di kolom 5 malah nama di kolom 4 yang tampil lagi mas,,seperti gambar di atas yang sudah saya input, bagaimana kodingnya tu mas ben, supaya data yang diinputkan seterusnya tampil di sheet Database,,mohon banget bantuannya mas ben...


Ben mengatakan...

NamaPegawai = Range("B4").Text
Alamat = Range("C4").Text

ya jels aja di kolom 4 mas..kan situ definisiin nama pegawai ama alamat di kolom 4 (B4 dan C4)

Admin mengatakan...

Trus gmana solusinya mas ben,,mhon bantuannya mas ben

Ben mengatakan...

kalo mau kolom 5 masuk ke database mas ubah aja B4 jadi B5, dan C4 jadi C5....

Admin mengatakan...

Klw itu udah pasti berhasil mas,,masalah nya kalau kita inputkan 2 kolom dan seterusnya mana bisa mas,,atau ada cara lain nggak mas,.

Ben mengatakan...

itu cari sel kosong setelah sel patokan dan berikutnya

contoh patokannya kan c4 jadi kita set dulu patokannya

dim patokan as range
set patokan = range("B4")

setelah itu suruh macro cari sel kosong di kolom2 setelah patokan

j = 1
do while patokan(1,j) <> ""

j = j + 1

loop

nah kalo udah ketemu taruh data di kolom yg gak kososng sebelum kolom kosong ke variabel atau sel yg dituju


datatuju = patokan(1, j-1).value

Admin mengatakan...

Aduuuh mas ben,,tambah nggk ngerti saya mas,,coba gabungkan coding yg mas ben ajukan tadi dengan coding yg saya buat tu mas ben,,tlong mas

Ben mengatakan...

kalo sy yg coding ada fee nya mas...
dan sy perlu jugaa file excel nya...

Admin mengatakan...

Kalau ada file sederhana yg sudah menggunakan tombol simpan,,tolong kirim ke email saya mas..
andresyafirman3@gmail.com
tlong bntuannya mas

Ben mengatakan...

sy jual 5 aplikasi yg dah jadi & kebuka kodingannya, plus tutorial2 di blog ini dalam pdf...50 ribu aja...

tapi kalo minta dimodif kodingannya atau sy buat koding baru sesuai permintaan konsumen harganya beda & lebi mahal...

kayaknya di grup FB komunitas VBA indonesia, banyak contoh koding vba mas...free juga

Unknown mengatakan...

@ ben boleh dung mas pdf nya nanti 50 rb nya saya transfer gmn

Ben mengatakan...

mau dikirim via jne (kepingan cd) atau via email mas???

alamat email nya pa mas? biar sy kirim no rekening saya

Anonim mengatakan...

Thanks gan... berguna sekali

Ben mengatakan...

oke gan..makasih kembali

Unknown mengatakan...

@ben email saya lukeman1285@gmail.com..

Arifa-Cake mengatakan...

Untuk form input yang databasebya jalan ke bawah bukan ke samping misalnya di sheet1 input A1 : A12 untuk di sheet2 tujuan maka sama jalan ke bawah bukan kesamping yakni B1 samapai B12 juga. Thanks gan

Ben mengatakan...

kalo jalan ke bawah atau ke samping bisa pake cells atau ofset, sy lebih sering pakai cells, tinggal kenadlikan rowindex nya

contoh
Range("A1").cells(2,1) itu sama dengan Range("A2").cells(1,1) atau Range("A2") saja

angka 2 mengacu pada baris kedua dari A1, yaitu A2

tinggal rubah2 aja rowindex nya

Unknown mengatakan...

mas ben saya pemula dan article mas top banget. ini alamat email saya backup12data@gmail.com. boleh saya minta alaamt email mas ben via email saja . nuhun

Ben mengatakan...

sy sudah kirim email ke mas, email sy bernadushs@yahoo.com

Unknown mengatakan...

Assalamualaikum, sebelumnya terimakasih ilmunya berguna sekali bagi saya, satu saya mau tanya bagaimana bila mecopy range a ke range b namun bila range b sudah ada isinya .. maka copy range a pindah ke bawah range b atau kesamping .. mohon pencerahaannya... sekali lagi terimakasih banyak... penjelasanya simple namun langsung masuk ke otak saya dan bisa di paktekan..
ini email saya anjaswara14@gmail.com

Ben mengatakan...

Halo mbak,

hal pertama adalah mengetahui apakah range b nya sudah terisi atau belum, kalau sudah terisi berarti pindah ke samping (tambah satu kolom) atau ke bawah (tambah satu baris)

ini contoh code untuk tahu range tertentu ada isinya atau tidak

If Range("A5") <> "" then
' hal yang dilakukan kalau range A5 ada isinya
else
'hal yang dilakukan kalau sebaliknya yaitu range A5 kosong
end if

untuk mengisi baris di bwah range target, contoh kodenya kayak gini

Range("A5").cells(2,1) = "nilai"

kalo kolom sebelahnya seperti ini contohnya

Range("A5").cells(1,2) = "nilai"

silahakan berlatih

Unknown mengatakan...

saya sudah mencoba rumus nya tapi tak tahu harus di tempatkan di mana

bila rumus ini juga saya gunakan untk mencopy range a ke range b

Range("a5").Copy Destination:=Range("b5")

nah yg saya mau jika pada range b5 ada isinya maka secara otomatis coman button bila saya klik otomatis mengisi range dibawah b5 ...

terimakasih rumusannya .... :)

Ben mengatakan...

Range("a5").Copy Destination:=Range("b5").cells(2,1)

kode ini akan mengkopi isi a5 ke b6 (di bawah a5)

tinggal digabungin sama penjelsan saya sebelumnya

Fidelis gulo mengatakan...

Mas, mohon bantuan, apa codingnya supaya cell A1 pada sheet1 apabila di klik/cell A1 aktif, maka akan berpindah ke sheet2. Tanpa gunakan (commanbutto).. matursuwun mas. Trims

Ben mengatakan...

kira-kira seperti itu mas...U welcome

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If ActiveCell.Address = Range("A1").Address Then Worksheets("Sheet2").Activate

End Sub

Fidelis gulo mengatakan...

Selamat malam master.. apa coding untuk commanbutton simpan.. saya punya data pada sheet1 range a1:a9 jika klik commandbutton maka data tersebut berpindah pada KOLOM kosong sheeet2. Jadi intinya data pada sheet1 di simpan pada kolom kosong mulai dari baris pertama sampai baris 9 pada sheet2. Mohon bantuan nya mas.. terimakasih gbu

Ben mengatakan...

kira2 seperti ini mas

Sheet2.range("A1:A9").value = Sheet1.range("A1:A9").value

sama2 mas
GBU too

Alfarizi mengatakan...

mas saya mau nanya ,kn saya buat coding di vb mocrosoft excel ,jadi saya buat form dan tombol comman button ,bagaimna cara nya memanggil / membuka file excel lain jika kita klik comman button ,terima kasih

Alfarizi mengatakan...

bagaimana codingan nya untuk memanggil atau membuka file excel yg sudah ada mass ?

Ben mengatakan...

pake Application.GetOpenFilename mas...

contohnya bisa dilihat di link ini

http://analysistabs.com/vba/open-file-dialogbox-excel-macros-example-code/

Atin mengatakan...

Mas Ben..
Saya ingin mencetak rapor utk siswa sekolah, berhubung utk rapor ada narasinya tiap mata pelajaran bisa sampai 6 halaman, Bagaimana memunculkan nomor halaman dan nama siswa pada catatan kaki (footnote/endnote). NB: Nama siswa ada di sel tertentu di sheet itu!

Ben mengatakan...

coba pelajari link ini bu

http://windowssecrets.com/forums/showthread.php/137093-Accessing-Footnote-text-using-VBA

tinggal ganti
aFN.Range.Text = range("A1")

misalnya nama siswa ada di sel "A1"

Atin mengatakan...

Terimakasih bantuannya...semoga jadi amal baik anda!

Ben mengatakan...

sama-sama bu...

Anonim mengatakan...

Pak mau tanya,gimana codingannya untuk memunculkan cell dengan sendirinya,setelah klik running tanpa di klik dahulu gridnya?

Anonim mengatakan...

Pak, bagaimana codingannya menggunakan visual basic untuk memunculkan cell dgn sendirinya setelah kita klik running, tanpa kita klik terlebih dahalu di gridnya?

Ben mengatakan...

biasanya kalau tidak memakai klik, kita bisa gunakan timer. yang paling sederhana adalah Application.OnTime

Unknown mengatakan...

Mohon Pencerahannya mas :
Saya Menggunakan Combo Box Form Control dan Button Form Control dan ketika saya pilih combo boxnya kan muncul angka 1 sampai 31, kemudian saya pilih angka 1 dan tampil angka satu. nah pertanyaannya adalah : bagaimana coding macronya ketika kita pilih salah satu anggak dari 1 s/d 31 dan kemudian kita klik Button form controlnya langsung menuju sheet 1 atau sheet sesuai pilihan pada combo box tersebut dan pencerahannya bisa di poskan via email saya mas (ajz_alex@yahoo.com) Thanks sebelum dan sesudahnya. SALAM PERSAHABATAN

Ben mengatakan...

step 1 :

mengetahui apa yang dipilih pengguna, misal pilihan pengguna kita taruh di variabel pilih

dim pilih as integer
pilih = ComboBox1.Value

step 2 :

aktifkan sheets sesuai pilihan

Worksheets(pilih).Activate

Sudrajat Ibnu Rusdi As Syirbani mengatakan...

Mas Ben Mohon Bantuannya ....
1. Saya membuat script untuk mengunci cell dengan script VBA sebagai berikut :
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Worksheets("BABAK 1").Protect Password:="625525", _
UserInterFaceOnly:=True
Rumus itu berhasil sih tp ko selalu minta di Running tiap kali buka, apa ada yang salah y? mohon jalan keluarnya
2. saya juga menyisipkan : Application.ScreenUpdating = False untuk menghilangkan kedip di layar karena rumus VBA, tapi kedip yang kecil hilang muncul kedip yang lebih besar, gimana nih? sekali lagi minta bantuan y Mas.....

Ben mengatakan...

@ mbak Shinta : misalnya kita mau menuju sel A1 di sheet1, kodenya seperti ini
Application.GoTo Sheet1.Range("A1"), True

@ mas Sudrajat : maksudnya dirunning seperti apa??? kan kodingnya dipanggil setiap kali workbook dibuka private workbook_open.... boleh tahu apakah mas menggunakan timer dalam aplikasinya??? atau pkai while loop (endless loop). saya pakai while loop tanpa ScreeenUpdating gak pernah flicker (kedip2)

Unknown mengatakan...

misi gan mo tanya nie.. misal kalo mau bikin menu kasir dan kita hanya menuliskan kode ny saja truz muncul menu,satuan dan hargax langsung di TextBox tanpa kita mengetikan lg di TextBox nya bagaimn ya rumusx.. mohon bantuanx..

pinkant mengatakan...

Mas. Bagaimana membuat codingnya ya. Syakan buat entri data lmbar jawab soal, pakai tombol simpan dan saya tmbh msgbox "data sudah msk database" di sheet 2. Sdh berhasil. Pertnyaanya.. Jika ada soal yg blm djwb/dientri msgbox"data ada yg kosong" dan blm ksimpan. Klo sdh oke full..bru ksimpan. Trimakasih

Unknown mengatakan...

Mas ben, mohon bantuannya kalo mau copy data dari sheet 1 ke sheet 2 menggunakan range dan kondisi tertentu contoh

jika G2 bernilai 1 maka copy data dari sheet1 range(A2:F2) ke sheet 2.
jika H3 bernilai 2 maka copy data dari sheet1 range(A3:F3) ke sheet 3.

dan hasil paste dari copyan range (A2:F2) / (A3:F3) di letakkan pada row terakhir pada sheet masing masing. thanks mas ben.

Ben mengatakan...

rumusnya panjang mas..

Ben mengatakan...

@mbak Pinkant & mas Ageng

pelajari cara menggunakan IF-THEN-ELSE

banyak tutorial di internet tentang itu mbak dan mas...

Mas Agus L - Madura mengatakan...

Mas... Kalau untuk penggunaan if not pada VB excel itu caranya bagaimana?
Semisalkan jika TextBox1 <> 15 dan Combobox Andi, maka akan muncul peringatan. Caranya bagaimana yaa mas? Mohon Bantuannya.

Ben mengatakan...

tidak ada "if not" dalam bahasa VB mas, yang ada
if-else-endif

biasanya kita gabungkan dengan logika lain yaitu
NOT
AND
OR

untuk kasus mas sys sarankan pakai AND,

IF textbox <> 15 AND combobox = Andi THEN
Msgbox "peringatan"
END IF

Deny Suhe mengatakan...

terimakasih ilmunya.sangat bermanfaat

Ben mengatakan...

sama-sama mas

Unknown mengatakan...

Mantabbbbbb

Ben mengatakan...

Prosedure nya dipecah mas...ditaruh di berapa module

OPS Stress mengatakan...

Mas mau nanya gmana scriptnya untuk di modul jika saya pengen pada cell A1 langsung tertulis suatu kata jika pertama kali saya membuka file tersebut...

Ben mengatakan...

private sub workbook_open()
range ("A1") = "kata"
end sub

Anonim mengatakan...

Mas mau nanya klo mau ngeprint semua atau sebagian sheet pake userform, apa codingnya ya?? misalnya kt punya 5 sheet trus kt mau ngeprint sheet 2 sampai 4 . disini saya pake checkbox.

Achmad mengatakan...

Mohon bimbingannya pak

saya punya 2 sheet yaitu sheet1 A2:A7 (Nama Barang) dengan txtbox1, B2:B7 (Jumlah Barang) dengan txtbox2 dan sebuah tombol Simpan kemudian sheet2 A2:A100 (Nama Barang) B2:B100 (Stok Barang),... bagaimana code VBA jika saat tombol simpan di click maka nilai pada jumlah Barang pada sheet2 dikurangi Jumlah Barang pada sheet1 sesuai nama barang. Trimakasih

salam

Ben mengatakan...

untuk memprint sheet silahkan lihat di link ini mas
https://msdn.microsoft.com/en-us/library/office/ff838253.aspx

strateginya chexbox nya menentukan nama sheets, kemudian gunakan kode yang ada di link yang saya kasih buat memprint sheets.

Ben mengatakan...

@mas Acmad

utntuk mudahanya masing range ddi sheets di set, misal
set sumber = Sheet1.Range("A2:B7")
set tujuan = Sheet2.Range("A2:B100")

i = 1
do while tujuan(i,1) <> ""
j = 1
do while sumber(j,1) <> ""
if tujuan(i,1) = sumber (j,1) then
tujuan(i,2) = tujuan(i,2) - sumber(j,2)
exit do
end if
j = j + 1
loop
i = i + 1
loop

Unknown mengatakan...

Mau tanya nih mas ben...
Gimana cara nya membuat auto hide saat data kosong dan auto unhide ketika data terisi...

Unknown mengatakan...

Mohon bimbingannya,mas...
Saya buat command button di sheet 1, kalau saya mau ketika command buttonnya di klik trus menuju ke sheet 2 cell B6, bagaimana kodenya mas?
Mohon penjelasannya mas...maklum masih belajar...
Terima kasih

Ben mengatakan...

@ mas Chank Chole : yg di hide apaan mas

untuk cek data kosong bisa kayak gini

if range("A1") = "" then

@ mas Yus
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("B6"))

k1rbansel12 mengatakan...

gan mau tanya dong, tau gak macro buat ngirim email otomatis pas suatu macro running? jad setiap macronya run bakal langsung ke email waktunya... bisa tolong i bantu gan?

Ben mengatakan...

cek lin ini gan
http://www.makeuseof.com/tag/send-emails-excel-vba/

sihindependent mengatakan...

saya tidak bisa mengedit data pada sheet yang disembunyikan melalui userform, mohon bimbingannya

Ben mengatakan...

macro nya yg buat sampeyan atau orang lain mas???
kalo punya sendiri ubah aja di userform nya

fahima mengatakan...

Mas Ben minta tolong dijelaskan cara buat codingnya dan penjelasan rincian fungsi codingnya. saya ingin cetak rapor sejumlah siswa dalam satu kelas dengan cara bertahap dan berberjalan otomatis, misalnya dari siswa no.1 sampai no. 5 dulu. lalu berlanjut siswa no.6 sampai no.10 dan seterusnya. Karena saya pernah mencoba cetak rapor dengan cara seperti itu tapi yang tercetak hanya siswa no.1 terus sampai beberapa kali sesuai jumlah yg saya pilih.padahal saya ingin cetak secara berurutan.terima kasih atas bantuannya.

aufik mengatakan...

Gan mau tanya cara membuat tombol simpan.
Seumpama di userform terdapat combobox1 dan tombol "simpan"

Yang mau saya tanyakan seumpama di combobox saya ketik "A" kemudian saya klik "simpan" maka yg saya ketik masuk di sheet2 di baris A1. Caranya gimana gan?

Tolong bantuannya

Ben mengatakan...

bila ada waktu saya buatkan tulisan tentang masalah mbak...saat ini lagi sibuk mbak

Ben mengatakan...

@mas Taufik,

mungkin maksudnya TextBox ya..karna kalo di ketik itu TextBox..

seperti ini

Sheet2.Range("A1"). Value = Me.Textbox1.value

nama dari objek TextBox nya = Textbox1

Unknown mengatakan...

mohon bantuannya mass. contoh code atau link agar sya bisa mempelajarinya.
saya ingin membuat program email gmail otomatis untuk pengingat tanggal sebulan sebelum, berdasarkan cell tertentu (B3) dan seterusnya tapi tetap menyebutkan nama dari tanggal pengingat tersebut. pengingat tersebut hanya dikirim ke 1 atau 2 email saja..

contoh cell A berisikan nama, dan cell B berisikan tanggal. ketika tanggal di B menuju sebulan sebelum tanggal maka email pengingat akan memberi peringatan.

sebelumnya terimakasih atas bantuannya.

Ben mengatakan...

coba lihat link ini mas :
https://www.mrexcel.com/forum/excel-questions/85086-sending-email-using-vba-excel.html