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

80 komentar:

Wawan mengatakan...

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

Wawan 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

Agung Bayunanto 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

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

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

Ben mengatakan...

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

terimakasih

Sapu Jagad 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

dede hidayat 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

syamsul alam mengatakan...

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

Ben mengatakan...

terimakasih karena sudah membaca mas...semoga bermanfaat

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

Andre Syafirman 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)

Andre Syafirman 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....

Andre Syafirman 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

Andre Syafirman 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...

Andre Syafirman 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

Lukman Hakim 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

Lukman Hakim mengatakan...

@ben email saya lukeman1285@gmail.com..

Syafiie Marsa 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

andriana kurniawan 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

novi anjaswara Anjaswara 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

novi anjaswara Anjaswara 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

Al Farizi 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

Al Farizi 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...

Sintia Dewi Dalalu mengatakan...

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

Sintia Dewi Dalalu 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

alexander agus 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 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

Ageng Yuliantoro 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...

Agus. Lahendra 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

Suherman pg mengatakan...

Mantabbbbbb