Wa'alaikumussalam Wr. Wb.
Proses terasa ada jeda karena setiap simpan harus menulis banyak sekali
cell.
Coba manfaatkan proses copy paste. Syaratnya, harus tahu jumlah baris yang
diinput karena area input di worksheet Faktur berisi formula.
Secara umum langkahnya :
1. cari tahu jumlah baris diinput -> letakkan di bagian : 'Ambil data nama
dan alamat dari sheet Form
2. cek, jika jumlah baris diinput kurang dari 2 (karena satu set input
harus 2 baris), maka proses dibatalkan (keluar)
3. baris diinput mencapai minimal 2, maka blok range input mulai A5:K5
diperluas sebanyak jumlah bari diinput dan lakukan Copy
4. tentukan baris terakhir rekap (sudah ada)
5. paste values data dari faktur ke rekap pada 1 baris setelah baristerakhir
6. copy formula di kolom L sampai P di sheet rekap ke baris-baris data
hasil paste di kolom L dan P nya
Bagian : 'Ambil data nama dan alamat dari sheet Form
diganti semua isinya menjadi :
dim lRec as long
lrec=application.worksheetfunction.count(sheets("faktur").range("a4").currentregion.resize(,1))
if lrec<2 then
exit sub
endif
sheets("faktur").range("a5").resize(lrec).copy
Bagian : 'Simpan data dari sheet Form ke sheet Database
'pada baris terakhir yang kosong
diganti menjadi :
.Cells(BarisTerakhir + 1, 1).pastespecial xlpastevalues
.range("L5:P5").copy .Cells(BarisTerakhir + 1, 1).resize(lrec)
Wassalamu'alaikum Wr. Wb.,
Kid
2012/12/3 Gilang Gumilar <[email protected]>
> **
>
>
> Assalamu’alaikum****
>
> Saya telah membuat faktur penjualan untuk apotik, dengan vba awalnya ****
>
> 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****
>
> ** **
>
> Saya belu paham betul dengan vba diatas, saat saya mencoba untuk menyimpan
> 2 value dari cell tidak ada masalah, tapa saat mencoba untuk menyimpan
> value dari banyak cell prosesnya telat.apa yang kurang atau salah?saya
> harap rekan-rekan ada yang bisa memberikan solusi.untuk lebih jelasnya
> filenya saya lampirkan****
>
>
>