VBA Hapus Data Hasil Copy Dari Suatu "Validation Data"

  1. 6 tahun lalu

    Selamat Sore Suhu Sekalian

    Nanya lagi nih. Saya punya kasus, misal :
    Pada cell B2 terdapat Validation Data (VD) berupa List dan sudah dibuatkan macronya untuk mengcopy VD tersebut secara otomatis ke cell B3 jika cell A2 terisi data, dan seterusnya. Yang jadi masalah adalah ketika misal kita sudah pilih data yang terdapat pada List di VD dan mengisi data di A2, maka data yg ada di cell B2 ikut tercopy ke cell B3.
    Apakah perintah yang tepat untuk membuat VD yg tercopy ke cell berikutnya dalam keadaan kosong?

    Terima kasih atas bantuannya.

  2. @Anton Indra

    terlampir contohnya

  3. Terimakasih suhu jawabannya.
    Namun ada satu permasalahan lagi. Misal saya ingin insert row di row ke 3, ketika saya input data di A3, maka kursor bergeraknya ke cell B terakhir hasil proses copy, bukan meng copy ke cell B3. Bagaimana pemecahannya?

  4. @Anton Indra

    coba skrip berikut :

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, sel As Range
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        x = Cells(Rows.Count, 1).End(xlUp).Row
        Set rng = Range("B3:B" & x)
        For Each sel In rng
            If sel = "" Then
                Cells(2, 2).Copy
                Cells(sel.Row, 2).PasteSpecial xlPasteValidation
            End If
        Next sel
    End If
    
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub

  5. Terima kasih suhu @manweljs_ atas bantuannya, namun untuk script yang kedua, saya sudah coba, permaslahan tadi masih muncul. Mohon pencerahannya.

  6. Di sunting 6 tahun lalu oleh manweljs_

    @Anton Indra

    kalau anda insert row di A3, terus input data di A3, anda mau nya cursor ada dimana ? kok jadi kursor yang dipermasalahkan bukannya copy validasi datanya. :D

    cursor.gif

  7. Hehehe, masalahnya ketika saya insert misalnya 100 row, trus saya ketik data di cell A2, trus saya geser kursor kekanan (tanpa menggunakan mouse) agar masuk ke cell B2, eh jatuhnya ke cell B102 suhu, begitu permasalahannya.

  8. Di sunting 6 tahun lalu oleh manweljs_

    sel B2 nya jangan di ganggu, kan validasi datanya ambil dari situ.

    tambahkan skrip berikut setelah End If terakhir :

    ...
    Range("A2").End(xlDown).Select
    ...

    btw, kalau barisnya lebih 100 maka Range("A1:A100") harus diedit seperlunya.

  9. ok, saya coba2 dulu.
    terima kasih

  10. Selamat Siang Suhu,

    Saya masih ada permasalahan, yang belum berhasil terpecahkan.
    Saya Lampirkan contohnya.

    Mohon bantuannya. Terima kasih

  11. Di sunting 6 tahun lalu oleh manweljs_

    @Anton Indra

    coba skrip berikut :

    Private Sub Worksheet_Change(ByVal Target As Range)
    x = Cells(Rows.Count, 3).End(xlUp).Row
    If Not Intersect(Target, Range("C4:C" & x)) Is Nothing Then
    Dim rng As Range, sel As Range
    Application.ScreenUpdating = False
    On Error Resume Next
    
        y = Target.Address
        Set rng = Range("C4:C" & x)
        For Each sel In rng
            If sel = "" Then
                Cells(4, 4).Copy
                Cells(sel.Row, 4).PasteSpecial xlPasteValidation
            End If
        Next sel
        Range("E4:E" & x).FillDown
        Range(y).Offset(0, 1).Select
       
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    Err.Clear
    End If
    End Sub

 

atau Mendaftar untuk ikut berdiskusi!