Ada pertanyaan? Masuk ke Forum atau klik di sini..!

Macro & VBA, Hits: 71007, Comments: 14, Bookmarked: 0, Followers: 6
Solved Solved

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: Thursday, September 24, 2020


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
1

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


ngarasan
03 Nov 2011
0

selamat siang mas...mau nanya,,klo diatas kan ada script untuk menyimpan data dari sheet Form ke sheet Database...mau nanya,,kalo untu mengedit data gimana y..??

misal saya mengetikkan data nama "acan" di sheet form,,dan kemudian tekan enter,,mmaka data alamat di sheet Form terisi dengan "ngarasan",,yang diambil dari sheet Database.

maturnuwun sebelumnya... :)


bluerain
04 Jul 2012
0

Mas Rachmad yang baik saya sudah coba macro nya dan berjalan dengan baik

Namun saya sedikit perbedaan kolom dengan kolom mas rachmad dimana kolom saya ada yang menggunakan formula dan kolom yang menggunakan formula tersebut saya protek dengan password dengan Protec Sheet. 

Pertanyaannya:

1. Gimana cara simpan row nya dari sheet "Form" (yang beberapa kolom di sheet "Form" ada yang di protek) ke dalam sheet "Database"

2. Gimana cara "paste" nya menggunakan paste special yaitu paste hanya ":value" nya saja? Karena saya sudah coba ternyata kolom yang ada formula nya tidak bisa di paste ke dalam sheet "Database" tersebut

 

Terima kasih sebelumnya


Tomycom
12 Jun 2014
1

Selamat pagi suhu, saya ingin nannya nih.

Jd saya buat project macro excel, dengan 9 sheet, nah sheet1 itu halaman userform macro dengan 4 form (form1 home , form2 input utk AL, form3 input untuk BD, form4 button "search") nah yang mana user memiliki 2 pilihan pada form home untuk mengisi 2 data yaitu data utk sheet2 (AL) dan sheet3 (BD), masing" form input terdapat button print yang fungsinya untuk print hasil input data saat itu (misalkan input BD, setelah semua diinput maka save dan print, sdgkan print itu menuju print 1 dokumen/data/sehalaman sheet3), sedangkan sheet4,5,6,7,8,9 saya gunakan untuk database yg mengacu pada kalkulasian sheet2 dan 3. Apa mengerti suhu? Hehe, agak ribet yh,

Nah yang saya mau tanyakan itu untuk Form4 yang terdapat button "search" saya menginginkan ketika diklik buton search maka keluar tanggal, tanggal ini fungsinya untuk mencari data yang pernah saya input pada AL dan BD berdasarkan tanggal tsb. Lalu ketika ketemu maka saya tinggal print saja data yang lama lama. Nah sampai disini suhu ngerti gk?

Jd pertnyaan saya ada 2

1. Apa koding utk tombol search itu

2. Apakah saya memerlukan tambahan sheet untuk menyimpan data data (database) hasil input sehingga terecord semua data. Jika iya bagaimana membuat perintah save data BD dan AL ke sheet baru tsb. 

*data disini data kalkulasi minyak jadi AL dan BD itu hasil kalkulasi yang memiliki tabel dg bnyak kolom dan row untuk diprint (1 page a4).

 

Thanks,Kira kira hasil input pada AL dan BD itu table seperti ini suhu, tapi ini masih kurang panjang. Jadi 1 sheet ini hanya untuk hasil pengkalkulasian yang data-data dipanggil dari sheet4,5,6,7,8,9. Contoh table pada sheet2,3.


Badxrats
10 May 2017
0

To. Master klinik Excel

Terkait dengan pertanyaan yang disampaikan Mas Harry , sy sudah berhasil membuat akan tetapi masih ada kendala pada saat hapus form dimana dalam form saya buat pada dua kolom yang berbeda kolom. Kolom yang pertama isiannya pada kolom ke 4 dari baris ke11 sampai baris 21, kolom yang kedua pada kolom ke 6 dari baris ke 14 sampai dengan 21.

saya masukkan kode ini

'hapus data inputan pada sheet Form
Me.Range(Cells(11, 4), Cells(21, 4)).ClearContents
Me.Range(Cells(14, 6), Cells(21, 6)).ClearContents

dan hasilya eror, mohon petunjuk Master

 

Terima kasih

Edy

 

 


edskinan
06 Jun 2017
0

mas,.. saya uda tuliskan cript nya tapi pada: Private Sub CommandButton1_click()Application.ScreenUpdating = false'deklarasi . Application jadi warna merah mas ada ada tulisan expceted End of statement. Mohon Bantuanya


thenmustarie
19 May 2019
0

selamat malam

mas saya buat input mengunakan vba datanya ada 1 row 15 kolum. terus kalau dijalankan vba nya otomatis data akan terisi di 15 kolum tadi, kalau saya input cuma 6 kolum data tetap terisi, terus kalau saya input kembali row nya gak mau nambah,,,mohon bantuannya???

contoh yang saya buat (baru belajar hehe) :

Sub inputData()

Dim Baris, totalBaris As Long

totalBaris = Sheet32.Cells.Rows.Count

Baris = Sheet32.Cells(totalBaris, 7).End(xlUp).Row + 1

Select Case MsgBox _

(vbCrLf & "apakah data sudah benar???", _

vbYesNo Or vbExclamation, "Informasi")

Case vbYes

Sheet32.Range("B" & Baris).Value = Sheet5.Range("P25").Value

Sheet32.Range("C" & Baris).Value = Sheet5.Range("P29").Value

Sheet32.Range("D" & Baris).Value = Sheet5.Range("P33").Value

Sheet32.Range("E" & Baris).Value = Sheet5.Range("P37").Value

Sheet32.Range("F" & Baris).Value = Sheet5.Range("P41").Value

Sheet32.Range("G" & Baris).Value = Sheet5.Range("P45").Value

Sheet32.Range("H" & Baris).Value = Sheet5.Range("P49").Value

Sheet32.Range("I" & Baris).Value = Sheet5.Range("P53").Value

Sheet32.Range("J" & Baris).Value = Sheet5.Range("P57").Value

Sheet32.Range("K" & Baris).Value = Sheet5.Range("P61").Value

Sheet32.Range("L" & Baris).Value = Sheet5.Range("P65").Value

Sheet32.Range("M" & Baris).Value = Sheet5.Range("P69").Value

Sheet32.Range("N" & Baris).Value = Sheet5.Range("P73").Value

Sheet32.Range("O" & Baris).Value = Sheet5.Range("P77").Value

Sheet32.Range("P" & Baris).Value = Sheet5.Range("P81").Value

Case vbNo

Exit Sub

End Select

 

 

End Sub

 

 


Guest
24 Sep 2020
0