Our social:

Senin, 27 Mei 2013

Input Data Di Excel dengan Macro

Halo Master,
Seneng bisa ketemu website ini, yang mau mengajarkan tentang excel dan macro. Saya harry dan kebetulan lagi ada kerjaan dari si boss.
Kasusnya gini mas, dalam file excel ada 2 sheet, form dan database, di bagian form ada isian Nama dan Alamat, dan sebuah tombol Save. Ketika tombol Save itu di klik, data yg diinput masuk kedalam sheet database di kolom A dan B, dan bisa disimpan permanen. Jadi ketika input data baru di sheet Form, data yang lama di sheet Database tetep ada.
Maap sebelumnya, saya sudah download yang di bagian project itu, tapi ketika file ditutup dan dibuka kembali, datanya yg udah diinput hilang semua.
Mohon bantuan master, untuk kasus saya ini.
Terima kasih sebelumnya.
Best Regards
Harry
Last Modified: Friday, December 28, 2012

harrycrb
Wednesday, November 02, 2011
0% of 0 votes
Halo Mas Harry,
Sesuai pertanyaan, saya buat sebuah Workbook yang memiliki 2 sheet: Form dan Database.
Pada Form, saya buat tempat inputan Nama pada cell A2, dan inputan Alamat pada cell B2. Dan sebuah ActiveX Control Command Button.
simpan harry 001
Dan pada sheet Database, saya buat sebuah penyimpanan data dengan header seperti pada gambar:
simpan harry 002
Selanjutnya, pada Command Button, saya tulis baris program sebagai berikut:
Private Sub CommandButton1_Click()Application.ScreenUpdating = False'deklarasi variabel
Dim Nama, Alamat As String
'Ambil data nama dan alamat dari sheet Form
Nama = Me.Cells(2, 1).Value
Alamat = Me.Cells(2, 2).Value

With Worksheets("Database")
'Cari tau baris terakhir yang kosong pada sheet Database
BarisTerakhir = Worksheets("Database").Cells(.Rows.Count, 1).End(xlUp).Row

'Simpan data dari sheet Form ke sheet Database
'pada baris terakhir yang kosong

.Cells(BarisTerakhir + 1, 1).Value = Nama
.Cells(BarisTerakhir + 1, 2).Value = Alamat
End With

'hapus data inputan pada sheet Form
Me.Range(Cells(2, 1), Cells(2, 2)).ClearContents

'simpan file
ActiveWorkbook.Save

Application.ScreenUpdating = True
End Sub
Penjelasan fungsi masing-masing baris code ada pada remarknya ya..
Nah, jika kita isi pada inputan dan kemudian kita klik SIMPAN, maka data pada inputan akan dipindahkan ke Sheet Database.
simpan harry 003
Jika kisa masukkan data  kedua, maka akan disimpan pada baris berikutnya dan seterusnya.
Baris program juga langsung men-save file agar data tidak hilang.
Semoga membantu..
salam

ngarasan
02 Nov 2011

0
Pagi-pagi buka internet langsung ke klinikexcel.com dan tidak menyangka ada jawabannya. Terima kasih atas jawabannya mas. Lagi dicoba :)

harrycrb
03 Nov 2011

0
Mas Rachmad yang baik, saya udah bisa membuat contoh yang mas kasih, terus saya coba membuat percobaan, kok error ya. hehehe ...
Sheet Form
Nama :  ????
Alamat : ????
Pekerjaan : ????
Nomor Telpon : ?????
Diklik tombol save, data yang diharapkan muncul di sheet database seperti ini:
Nama    |  Alamat         |  Pekerjaan    | Nomor Telepon
Harry    |  Cirebon        | Swasta          | 081xxxxxxx
di macro saya buat seperti ini :
Dim Nama, Alamat, Pekerjaan As String
Dim NoTelpon As Integer
'Ambil data
Nama = Me.Cells(2, 4).Value
Alamat = Me.Cells(3, 4).Value
Pekerjaan = Me.Cells(4, 4).Value
NoTelpon = Me.Cells(5, 4).Value
Ketika di Run, muncul error "Invalid Me Keyword"
Kenapa ya mas?
Makasih sebelumnya

harrycrb
03 Nov 2011

0
Halo Mas..
Pada code: Me.cells(1,2).value
Fungsi "Me" sebenarnya hanya untuk menyingkat referensi lokasi code itu berada.
Code pada contoh saya sebelumnya, mengunakan ActiveX Control CommandButton yang saya letakkan di Sheet: "Form". Sehingga, code-nya pun berada pada "Object" sheet "Form".
Alhasil, "Me"-nya adalah penyingkat dari code: Worksheets("Form").cells(1,2).value
Lain kasus kalo code-nya di tulis di module atau object yang lain misal Sheet lainnya, atau Workbook, maka "Me" akan bermakna beda.
Pertanyaan saya:
1. Mas Harry pakai ActiveX Control atau Form Control Button?
2. Dimana Mas Harry meletakkan code-nya?
semakin detail keterangannya, semakin memudahkan saya mencari titik masalahnya.
salam

ngarasan
03 Nov 2011

0
Oh beda ya mas, saya ternyata pake form control button bukan activeX control. Terus saya coba ganti dengan menggunakan ActiveX control button, double klik lalu saya masukan kode yang sama, di Me tidak terjadi error lagi, error muncul di
'hapus data inputan pada sheet Form
Me.Range(Cells(2, 4), Cells(2, 4), Cells(3, 4), Cells(4, 4), Cells(7, 4)).ClearContents
muncul pesan "wrong number of argument or invalid property asignment"
knapa ya mas?
Makasih sebelumnya.

harrycrb
03 Nov 2011

0
Halo Mas,
Code ini salah syntax.
Me.Range(Cells(2, 4), Cells(2, 4), Cells(3, 4), Cells(4, 4), Cells(7, 4)).ClearContents
Yang benar:
Code ini salah syntax.
Me.Range(Cells(2, 4), Cells(5, 4)).ClearContents
Artinya: Mas Harry ingin menghapus Content dari Cell "D2" s/d "D5".
Begitulah..

ngarasan
03 Nov 2011

0
Ohhh ... pantesan, makasih mas rachmad.
Semoga ilmu yang diberikan dapat pahala yang banyak. Aminnnn.

harrycrb
03 Nov 2011

0

Amiin..
Terima kasih doa-nya..

sumber