Pengembalian barang masuk ke kolom tertentu

  1. 3 tahun lalu

    Selamat malam abang master sekalian, mau minta tolong untuk case seperti terlampir, untuk keterangan dan tujuan ada di dalam excel yaa, mohon bantuannya banget master, terima kasih case.xlsx

    Mas @haidaramzy ...

    untuk kolom N7 nya kalo saya hapus kolom nya langsung error ...

    Kalau informasinya jelas seperti tersebut khan jadinya mudah dipahami. Untuk masalah tersebut, tambahkan baris berikut :

    If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub

    setelah pengujian kondisi pertama. Jadinya seperti berikut:

    If Not Intersect(Target, Me.[N7]) Is Nothing Then
        '+-- Tambahkan baris berikut ini.
        If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub
        ...
        If Len(Target) Then
        ...
        End If
    End If

    Demikian.

  2. Caton

    17 Jun 2021 Terverifikasi Indonesia + 20.101 Poin

    Mas @haidaramzy ...

    Silahkan periksa file terlampir.

    Demikian.

  3. maaf mas caton, maksud saya ketika saya ketik BUKU-MTK-01 langsung masuk ke kolom D9, sedangkan kalo saya ketik BUKU-MTK-02 otomatis langsung masuk ke kolom D10, sedangkan kalo saya ketik yang tidak ada di dalam list range C:C maka akan error mas, terima kasih hehe

  4. Caton

    18 Jun 2021 Terverifikasi Indonesia + 20.101 Poin

    Mas @haidaramzy ...

    Coba ganti script untuk prosedur Sub Worksheet_Change pada modul Sheet1 dengan script berikut ini :

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.[N7]) Is Nothing Then
            If Len(Target) Then
                Dim lRow As Long
                Dim sOldData As String
                Dim xIndex
                
                Application.EnableEvents = False
                
                '+-- Temukan indeks dari data yang diinput.
                xIndex = Application.Match(Target, Me.[C9:C100], 0)
                '+-- Jika ditemukan:
                If IsNumeric(xIndex) Then
                    '+-- Apakah data sudah pernah diinput?
                    sOldData = Me.Cells(xIndex + 8, "D")
                    If Len(sOldData) And (UCase(sOldData) = UCase(Target)) Then
                        '+-- Kalau data sudah pernah diinput.
                        MsgBox "Data sudah pernah diinput!"
                    Else
                        '+-- Kalau data sudah belum pernah diinput.
                        Me.Cells(xIndex + 8, "D") = UCase(Target)
                        Target = vbNullString
                    End If
                Else
                    '+-- Data tidak ditemukan!
                    MsgBox "Input tidak valid!"
                End If
                
                Target.Select
                
                Application.EnableEvents = True
            End If
        End If
    End Sub

    Demikian, semoga sesuai... :)

  5. benar sekali mas caton hehe, tapi kalo kolom nya saya delete kenapa error bug 13 type missmatch ya mas ? ada solusinyaa ?

  6. Caton

    18 Jun 2021 Terverifikasi Indonesia + 20.101 Poin

    Mas @haidaramzy...

    Kolom yang mana yang dimaksud? Kalau maksudnya kolom C, maka coba gunakan fungsi Application.CountIf terlebih dahulu sebelum baris perintah Application.Match, tujuannya untuk mengetahui apakah pada kolom C ada datanya atau tidak. Misal :

    xIndex = Application.CountIf(Me.[C9:C100], "? *")
    If IsNumeric(xIndex) Then
       xIndex = Application.Match(Target, Me.[C9:C100], 0)
       If IsNumeric(xIndex) Then
          sOldData = Me.Cells(xIndex + 8, "D")
         ...
       Else
          '+-- Data tidak ditemukan!
          MsgBox "Input tidak valid!"
       End If
    Else
       MsgBox "Tidak ada data masuk!" 
    End If

    Mungkin demikian solusinya.

    Demikian.

  7. Maksudnya untuk kolom N7 nya kalo saya hapus kolom nya langsung error mas caton hehe :D

  8. Caton

    19 Jun 2021 Terverifikasi Jawaban Terpilih Indonesia + 20.101 Poin

    Mas @haidaramzy ...

    untuk kolom N7 nya kalo saya hapus kolom nya langsung error ...

    Kalau informasinya jelas seperti tersebut khan jadinya mudah dipahami. Untuk masalah tersebut, tambahkan baris berikut :

    If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub

    setelah pengujian kondisi pertama. Jadinya seperti berikut:

    If Not Intersect(Target, Me.[N7]) Is Nothing Then
        '+-- Tambahkan baris berikut ini.
        If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then Exit Sub
        ...
        If Len(Target) Then
        ...
        End If
    End If

    Demikian.

  9. benar, terima kasih mas caton hehe

 

atau Mendaftar untuk ikut berdiskusi!