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
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
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
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... :)
benar sekali mas caton hehe, tapi kalo kolom nya saya delete kenapa error bug 13 type missmatch ya mas ? ada solusinyaa ?
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.
Maksudnya untuk kolom N7 nya kalo saya hapus kolom nya langsung error mas caton hehe :D
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.
benar, terima kasih mas caton hehe