Help! Edit data di dua Sheet

  1. 6 tahun lalu

    Help! I need somebody
    Help! Not just anybody
    Help! You know I need someone
    Help....!

    sorry itu intermezo dari The Beatles.... :D :D biar ngga terlalu serius hehehe... :P

    Untuk para Master semuanya, @Caton, @Fujiansyah92, @Masdad dll
    Saya membuat aplikasi sederhana, tapi ada ganjalan, mungkian ada script sy yang salah, mentok nih...
    Berikut file dan pertanyaannya saya lampirkan...

    Terimakasih sebelumnya, sapatau ada yang masih bangun :)

  2. Caton

    18 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Coba perhatikan gambar berikut:

    Shoot037.png

    Pertama, objek CSW ditetapkan ke objek WS yang mana objek WS sendiri merupakan Sheet Object dari DataSiswa. Padahal, sheet CopyData sudah ditetapkan pada objek WsSW (lihat baris di atasnya). Solusinya, coba ubah script tersebut menjadi:

    Set CSW = WsSW.Range("B2:B9999").Find(txtNomorInduk.Value, LookIn:=xlValues)

    Kedua, penggunaan script:

    WsSW.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    bertujuan untuk mencari baris terakhir yang tidak kosong dan kemudian memindahkannya satu baris ke bawah. Sehingga variabel m_lRowIndexSW akan selalu berisi baris baru dari data yang ada. Solusinya, script tersebut dapat dimodifikasi menjadi:

    ...
    If Not CSW Is Nothing Then
        m_lRowIndexSW = CSW.Row
    Else
        m_lRowIndexSW = WsSW.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    End If
    ...

    Dengan demikian, jika data ditemukan pada sheet CopyData, maka prosesnya adalah mengubah data tersebut, jika tidak maka prosesnya adalah menambahkan data baru. Jika tidak ingin menambahkan data baru, maka scriptnya bisa dimodifikasi menjadi:

    ...
    If Not CSW Is Nothing Then
        m_lRowIndexSW = CSW.Row
    
        With WsSW
            .Cells(m_lRowIndexSW, 1) = "=Row()-3"
            .Cells(m_lRowIndexSW, 2) = txtNomorInduk.Text
            .Cells(m_lRowIndexSW, 3) = txtNama.Text
            .Cells(m_lRowIndexSW, 4) = txtKelas.Text
            .Cells(m_lRowIndexSW, 5) = txtNilai.Text
            .Cells(m_lRowIndexSW, 6) = txtStatus.Text
        End With
    End If
    ....

    Demikian masalah dan solusi yang dapat saya informasikan... ;)

  3. @Caton

    Bang Caton The Flash kali ya... cepet banget... ketauannya hahaha...
    Thanks bang, baik saya coba dulu...

  4. Di sunting 6 tahun lalu oleh Vei-Rid

    Aku bahagia hidup sejahtera di khatulistiwa....
    hahaha.... thanks banget bang... ngakak ane... problem solved, kayaknya cara pertama yang saya maksud :D
    cara dua juga bagus...

    Perfecto... two thumbs up... :D

  5. Caton

    19 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Sama-sama mas bro... :D

  6. @Caton
    Maaf bang mo tanya lagi nih, saya coba alternative mailmerge untuk data diatas (saya upload baru) tapi ada kendala, code yg saya buat gagal... mohon pencerahan (pertanyaan detail ada didalam file)

    Thanks

  7. Caton

    24 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    Terlampir perbaikan pada prosedur cmdPrintPerview_Click dan sedikit perbaikan lainnya. Demikian... ;)

  8. Sungguh mantapzzz..... yesss...

    Thanks bang @Caton :D :D :D (Y)

  9. Pantesan code saya ngga berfungsi.... ternyata logika saya bikin codenya jadi aneh ya hahaha... :D

  10. Caton

    24 Jan 2018 Terverifikasi Indonesia + 20.101 Poin

    ... Pantesan code saya ngga berfungsi.... ternyata logika saya bikin codenya jadi aneh ya ...

    [1]. Coba mulai dirapikan scriptnya agar mudah dibaca dan ditelusuri.

    [2]. Kemudian, jika akan menggunakan Sheet Object, lebih baik langsung gunakan Code Name-nya saja. Coba saja ubah Tab Name DataSiswa menjadi DataSiswi. Klik tombol Buka Form Data. Dijamin prosesnya nanti akan menemui kesalahan, seperti Subscript Out of Range. Menggunakan Sheet Code Name lebih aman karena perubahan namanya terbatas hanya pada saat Design Time saja.

    Demikian sedikit tips yang saya ketahui... ;)

  11. Oh iya... barusan aja saya mo tanya itu... hehehe... dah keburu kejawab... :D
    Thanks infonya, sangat sangat bermanfaat... ;)

 

atau Mendaftar untuk ikut berdiskusi!