pak Harry,

coba tulis code berikut di command botton untuk Save di form Pindah

Private Sub cmdAdd_Click()
    ' deklarasikan range nama untuk mengurutkan data di sheet 1 setelah
penghapusan data
    Dim rgNama As Range
    Dim rNama As Range
    Dim i As Long

    ' deklarasi variabel r untuk menyimpan nilai baris sheet1
    Dim r As Long
    r = Cbonama.ListIndex + 2

    ' lakukan konfirmasi ulang tentang pemindahan data
    ' jika user memilih Cancel maka batalkan pemindahan data
    If MsgBox("Yakin akan memindahkan data ini?", vbOKCancel, "Konfirmasi
Pindah Data") = vbCancel Then
        Exit Sub
    End If

    ' jika user tidak menekan cancel maka berarti proses dilanjutkan
    ' pindah ke sheet 2
    Sheets("Sheet2").Select
    ' pergi ke header nama / cell b1
    Range("b1").Select
    ' cek apakah baris di bawah header nama kosong atau tidak
    If ActiveCell.Offset(1, 0) = "" Then
        ' jika baris di bawah header nama kosong, maka turun ke baris
tersebut
        ActiveCell.Offset(1, 0).Select
    ' selain itu
    Else
        ' pergi ke baris terakhir yang berisi data
        ActiveCell.End(xlDown).Select
        ' lalu turun 1 bari lagi ke baris yang kosong
        ActiveCell.Offset(1, 0).Select
    End If

    With ActiveCell
        ' tulis data yang ingin dipindah ke baris tersebut
        ' sesuai dengan kolom yang dituju
        .Value = Cbonama.Value
        .Offset(0, 1).Value = txtALAMAT.Text
        .Offset(0, 2).Value = txtJURUSAN.Text
        .Offset(0, 3).Value = Format(txtTGLDAFTAR.Text, "dd-mm-yyyy")
        .Offset(0, 4).Value = Format(txtTGLTES.Text, "dd-mm-yyyy")
        .Offset(0, 5).Value = txtPETUGASINPUT.Text
        .Offset(0, 6).Value = Format(txtTANGGALINPUT.Text, "dd-mm-yyyy")
        .Offset(0, 7).Value = Lbl_User.Caption
        .Offset(0, 8).Value = Format(Date, "dd-mm-yyyy")
        .Offset(0, 1).Value = 1
    End With

    ' pindah ke sheet1
    Sheets("Sheet1").Select
    'pergi ke baris yang dipindah
    Cells(r, 1).Select
    ' hapus baris tersebut
    Selection.EntireRow.Delete
    ' urutkan kembali nomor urut data di sheet 1 setelah data dipindah
    Range("b1").Select
    i = 1
    If ActiveCell.Offset(1, 0) <> "" Then
        Set rgNama = Range(ActiveCell.Offset(1, 0), ActiveCell.End(xlDown))
        For Each rNama In rgNama
            rNama.Offset(0, -1).Value = i
            i = i + 1
        Next rNama
    End If

    ' hapus semua data yang ada di form
    Cbonama.Value = ""
    txtALAMAT.Text = ""
    txtJURUSAN.Text = ""
    txtTGLDAFTAR.Text = ""
    txtTGLTES.Text = ""
    txtPETUGASINPUT.Text = ""
    txtTANGGALINPUT.Text = ""
End Sub

untuk para master.. kalo ada yang salah tolong dikoreksi  ^_^

wassalam,

-aji mumpung-

Pada 30 September 2012 17:57, Harry <[email protected]> menulis:

> **
>
>
> Dear BeExceller
> Mr. Kid
>
> Pertama saya mengucapkan terima kasih atas berkenan informasinya.
> Dari rumus yang Mr. Kid berikan, sudah saya tuangkan ke User Form. Tapi
> masih terdapat beberapa kesalahan dalam proses edit dan pemindahan data
> dari Sheet1 ke Sheet2.
> Adapun beberapa kesalahan dari rumus yang saya tuangkan ke User Form sudah
> saya  tuliskan pada Lampiran yang saya sertakan.
>
> Besar harapan kiranya teman-teman BeExceller atau Mr. Kid dapat membantu
> saya akan hal tersebut.
>
> Terima kasih atas bantuannya.
> Wassalam,
>
> Harry
>
> N/B:
> Jawaban / penjelasan dari Mr. Kid yang No 1, 5 & 6 belum bisa saya
> tuangkan ke User Form karena masih bingung.
>
>   ------------------------------
> *Dari:* Kid Mr. <[email protected]>
> *Kepada:* [email protected]
> *Dikirim:* Minggu, 30 September 2012 10:21
>
> *Judul:* Re: [belajar-excel] INPUT, EDIT & PINDAH TABEL
>
>
> Ikutan...
>
> 1. Kolom Nama Tidak Bisa Di Revisi
> >> pada setiap form, buat deklarasi pada level form (bukan dalam setiap
> prosedur)
>          private lIdx as long
> >> pada event change combobox tambahkan :
>      if namacombonya.listindex<>-1 then
>                 lidx=namacombonya.listindex
>      endif
> >> pada event click tombol save di bagian tulis nama, hapus yang lama dan
> ganti dengan :
>      if memmaster.resize(1,1).offset(lidx,1).value <>
> namacombonya.list(lidx) then
>
> memmaster.resize(1,1).offset(lidx,1).value=namacombonya.list(lidx)
>      endif
>
> 2. Pada Kolom Nama Baris Paling Bawah, Jika Di Revisi Kolom Jurusan
> Otomatis Mengcopy Pada Kolom Petugas Input
> >> perbaiki di event click tombol save pada bagian dibawah ini, yang benar
> siapa yang harus ambil txtJurusan :
>     If MemMaster(r, 4) <> txtJURUSAN Then
>         Sheets("sheet1").Cells(r, 4).Value = txtJURUSAN.text
>     End If
>     If MemMaster(r, 7) <> txtPETUGASINPUT Then
>         Sheets("sheet1").Cells(r, 7).Value = txtJURUSAN.text
>     End If
>   biasakan gunkan propertinya seperti txtJURUSAN.text dan bukan hanya
> txtJURUSAN walau defaultnya memang textbox selalu mengambil properti text.
>   hal ini akan memudahkan migrasi dari satu bahasa program ke bahasa
> program lainnya.
>
> 3. Hasil Revisi Sering Nyasar Pada Baris Pertama (Pada Kolom Judul)
> >> karena ada pengubahan text pada combobox, maka nilai r =
> Cbonama.ListIndex + 2 tidak merujuk dengan benar. Oleh sebab itu dibutuhkan
> proses penyimpanan nilai listindex disebuah variabel berlevel module atau
> form seperti di nomor 1 di atas.
>
> 4. Tanggal Revisi Tidak Match Dengan Tanggal Hari Ini (Tidak Update)
> >> isi tanggal revisi dengan nilai tanggal hari ini dengan fungsi *Date*
>        alamatrangenya.value=*Date*
> jika ingin hasilnya bertipe teks, lakukan format terhadap *Date* dengan
> fungsi format.
>
> 5. Jika Ada Proses Pemindahan, Data Yang Ada Pada Sheet1 Tidak Otomatis
> Dihapus
> >> setelah salin data ke sheet lokasi pindah, lakukan hapus range dengan
> shift up pada sheet1
>         sheet1.range(sekian sampai sekian).delete xlshiftup
> 'sesuaikan rujukan range yang bunyisa sekian sampai sekian agar persis
> sesuai kebutuhan
>
> 6. Jika Ada Proses Pemindahan, Pada Sheet2 Kolom Petugas Input Dan Tanggal
> Input Tidak Terdeteksi
> >> sebelum dipindah ke sheet2, di sheet1 tulis dulu nilainya sesuai
> keinginan pada kolom yang bersesuaian dengan nilai yang paling anda anggap
> tepat. Setelah itu baru lakukan proses penyalinan ke sheet2 dilanjutkan
> proses penghapusan dari sheet1 (proses penghapusan seperti nomor 5)
>
> Wassalam,
> Kid.
>
> 2012/9/30 Harry <[email protected]>
>
> **
>
>  Dear BeExceller,
> Bp. Aji Mumpung
>
> Terima kasih atas berkenan rumusnya.
> Rumus yang telah diberikan sudah saya tuangkan dalam User Form yang saya
> maksudkan.
> Tapi dari rumus tersebut masih ada beberapa ERROR sebagaimana terlampir
> file-nya.
>
> Mohon berkenan koreksinya.
>
> Terima kasih,
>
>
> Harry
>
> N/B:
> Pada Sheet1 dan Sheet2 tsb bisa atau tidak saya tambahkan proteksi dengan
> cara Unprotect & Protect...???
>   ------------------------------
> *Dari:* aji mumpung <[email protected]>
> *Kepada:* [email protected]
> *Dikirim:* Kamis, 27 September 2012 13:46
>
> *Judul:* Re: [belajar-excel] INPUT, EDIT & PINDAH TABEL
>
>
> Hai pak Harry,
>
> algoritma pemrograman yang telah disampaikan oleh Mr.Kid ---kalo kata pak
> presiden "Sudah Terang Benderang"---, jadi seYogya-nya (gak ada se-Jakarta
> ya) jika script vba tersebut adalah hasil kreasi anda sendiri.. seharusnya
> dengan mudah anda menuangkannya ke dalam user form.. ^_^
>
> kalo untuk saya yang masih pemula sekali, lebih mudah menulis script dari
> awal dibandingkan menelusuri logika pemrograman yang sudah ada.. ---mungkin
> sama dengan tukang bangunan.. dari pada disuruh ngerombak rumah yang sudah
> jadi mendingan milih ngebangun dari awal--- ini hanya pendapat pribadi ya..
> ^_^
>
> tapi...(ada tapinya nih..)  saya coba bantu untuk solusi editnya saja ya..
> ^_^
>
>     Dim r As Long
>
>    ' cek dahulu, apakah data ada yang kosong atau tidak
>    ' jika ada yang kosong maka kasih tau usernya buat ngisi yang masih
> kosong
>     If txtALAMAT = "" Or txtJURUSAN = "" Or txtTGLDAFTAR = "" Or txtTGLTES
> = "" Or _
>         txtLblUser = "" Or txtTGLINPUT = "" Then
>         MsgBox "Input dulu yang kosong ya...", vbOKOnly, "Iseng aja luh..
> ^_^"
>         Exit Sub
>     End If
>
>     ' cek lagi apakah ada perubahan data apa nggak, kalo nggak ada
>     ' ya ngapain juga nulis data ke database.. cape-capein aja ^_^
>     r = Cbonama.ListIndex + 2
>     If MemMaster(r, 3) <> txtALAMAT Then
>         Sheets("sheet1").Cells(r, 3).Value = txtALAMAT
>     End If
>     If MemMaster(r, 4) <> txtJURUSAN Then
>         Sheets("sheet1").Cells(r, 4).Value = txtJURUSAN
>     End If
>     If MemMaster(r, 5) <> txtTGLDAFTAR Then
>         Sheets("sheet1").Cells(r, 5).Value = txtTGLDAFTAR
>     End If
>     If MemMaster(r, 6) <> txtTGLTES Then
>         Sheets("sheet1").Cells(r, 6).Value = Format(txtTGLTES,
> "dd-mm-yyyy")
>     End If
>     If MemMaster(r, 7) <> txtLblUser Then
>         Sheets("sheet1").Cells(r, 3).Value = txtLblUser
>     End If
>     If MemMaster(r, 8) <> txtTGLINPUT Then
>         Sheets("sheet1").Cells(r, 8).Value = Format(txtTGLINPUT,
> "dd-mm-yyyy")
>     End If
>
>    Cbonama.Value = ""
>    txtALAMAT.Value = ""
>    txtJURUSAN.Value = ""
>    txtTGLDAFTAR.Value = ""
>    txtTGLTES.Value = ""
>    txtLblUser.Value = ""
>    txtTGLINPUT.Value = ""
>
> script yang buat pindah datanya mana???  ---nanti ya, masih harus nyari
> rumput buat kasih makan kambing dulu, kalo sempet nanti diposting lagi,
> tapi kalo mau coba ikuti logika pemrograman dari Mr. Kid---
>
> lain kali mbok ya'o kalo kasih nama command button jangan cmdAdd semua..
> bingung jadinya @_@
>
> script tersebut ditulis di salah satu command button yang nama-nya sama
> itu lho..
>
> wassalam,
>
> -aji mumpung- (cah angon seko gunung merbabu)
>
> Pada 26 September 2012 16:38, Harry <[email protected]> menulis:
>
> **
>
>  Dear Mr. Kid,
>
> Terima kasih atas berkenan reply-nya. Tapi dr info tersebut, saya
> kesulitan dalam menuangkannya dlm User Form yang saya maksudkan.
>
> Mohon berkenan kirimkan contoh User Form-nya seperti yang pernah saya
> lampirkan.
>
> Terima kasih,
>
> Harry
>
>
>   ------------------------------
> *Dari:* Kid Mr. <[email protected]>
> *Kepada:* [email protected]
> *Dikirim:* Selasa, 25 September 2012 22:30
>
> *Judul:* Re: [belajar-excel] INPUT, EDIT & PINDAH TABEL
>
>
> Oke.
>
> 1. Untuk Add data sudah bisa ya.
> 2. Untuk menampilkan data yang akan di edit atau akan di-delete sudah bisa
> juga bukan. Yang jelas, dalam proses itu, Anda bisa mendapatkan posisi
> record.
>      *Posisi record itu* yang harus Anda ingat terus, yaitu *listindex
> dari combobox + 1*
> 3. Untuk proses edit data, ketika tombol save ditekan, harus ada proses :
>      >> 1. vallidasi terhadap isi setiap control dalam form, apakah pantas
> untuk di save atau tidak.
>      >> 2. ketika hasil validasi sudah oke dan pantas disimpan, cek setiap
> isi control dalam form dan bandingkan dengan nilai setiap kolom di baris
> record tersebut
>               Jika berbeda dengan isi di tabel pada baris record itu,
> salin nilai kolom di record itu ke kolom poin edit record itu juga
>               Jika sama, tidak perlu lakukan apapun
>               [proses nomor 2 ini adalah pencatatan histori yang Anda
> inginkan, khusus untuk edit data]
>      >> 3. lakukan proses penulisan nilai di setiap control dalam form ke
> masing-masing kolom yang bersesuaian pada record itu juga.
>      >> 4. proses selesai.
> 4. Untuk proses pindah data, ketika tombol save ditekan :
>     (inti proses adalah salin data record itu ke tabel penampung data yang
> dihapus, kemudian hapus data di tabel utama pada record itu)
>      >> 1. beri konfirmasi terakhir pad user apakah proses akan dilanjutkan
>                Jika ya, maka lanjutkan, jika tidak, maka batalkan proses
>      >> 2. salin data dari tabel utama di record itu ke tabel penampung di
> baris baru
>      >> 3. hapus data dari tabel utama pada record itu
>                contoh untuk hapus data di record ke-3, mulai kolom B
> sebanyak 1 baris x 10 kolom, dan range di shift ke atas
>                       range("b4").resize(1,10).delete xlshiftup
>                sesuaikan rujukan range("b4").resize(1,10) dengan kebutuhan
> yang telah diketahui nomor recordnya dari combobox list index (sudah
> dibahas di atas sana)
>     >> 4. proses selesai.
>
> Wassalam,
> Kid.
>
>
>
>
>
>
>
>   
>

Kirim email ke