terima kasih mr pak Hendrik & mr Kid, ternyata untuk kasus seperti ini kelihatannya lebih simpel menggunakan data validasi ya.. jadi berfikir ulang untuk mengganti seluruh formula dengan macro hehehe.. :D
wassalam, -dwint- Pada 11 September 2012 17:22, Kid Mr. <[email protected]> menulis: > ** > > > Coba file terlampir. > > 1. untuk penggunaan tanpa VBA > >> setting data validation -> custom -> formula diisi : > =($B$2=$F$3)*(MOD($B$3,4)=0) > > 2. dengan VBA menggunakan event worksheet change : > Private Sub Worksheet_Change(ByVal Target As Range) > If Not Intersect(Range("b3"), Target) Is Nothing Then > If Len(Range("b2").Value) = 2 Then > If InStr(LCase$(Range("b2").Value), "ya") <> 0 Then > If IsNumeric(Range("b3").Value) Then > If Int(CDec(Range("b3").Value)) = > CDec(Range("b3").Value) Then > If CDec(Range("b3").Value) Mod 4 = 0 Then > Exit Sub > End If > End If > End If > End If > End If > Application.EnableEvents = False > Range("b3").ClearContents > Application.EnableEvents = True > End If > End Sub > > Wassalam, > Kid. > > > 2012/9/11 dwint ruswanto <[email protected]> > >> ** >> >> >> Assalamu'alaikum, >> >> para master & member millis yang saya hormati, >> >> bagaimana cara membuat validasi inputan berdaraskan 2 kondisi? boleh >> menggunakan data validasi ataupun makro, >> syarat: kondisi 2 hanya boleh diisi dengan kelipatan 4 hanya jika kondisi >> 1 = Ya dan kondisi 1 tidak kosong >> >> data validasi yang sudah saya buat >> =IF(($B$2="Ya")*($B$2<>"");MOD($B$3;4)=0;0) >> jika kondisi 1 kosong maka >> tidak berhasil >> >> dan macro yang sudah saya buat >> >> Private Sub Worksheet_Change(ByVal Target As Range) >> With Target >> If .Row = 3 And .Column = 2 Then >> If Range("b3").Value Mod 4 <> 0 And Len(Range("b2")) = 0 Then >> Range("b3").Select >> MsgBox "Bla bla bla bla", vbOKOnly >> End If >> End If >> End With >> End Sub >> >> tetapi keduanya tidak berhasil.. >> >> tolong dikoreksi letak kesalahannya. >> >> wassalam, >> >> -dwint- >> >> > >

