Hai Nurani,
Coba pelajari lagi tentang apa itu prosedur dan macamnya prosedur. Terutama
tentang apa itu prosedur events. Salah satu coretan tentang events ada
disini
<http://b-excel.blogspot.com/2013/08/belajarvba-007-property-methods-events.html>,
terutama tentang events bagi worksheet maupun workbook. Beda event milik
worksheet dan event milik workbook.
Tombol CommandButton nya tidak melakukan pengubahan nilai apapun dalam
cells di suatu worksheet. Jadi, event change milik worksheet manapun, baik
event yang ditangkap oleh workbook atau worksheet.
Jadi, pertanyaan Anda sebenarnya adalah :
"*Bagaimana cara mengubah isi suatu cells dalam suatu worksheet agar
prosedur event change milik workbook* (workbook_sheetchange) bisa
dijalankan oleh VBA ketika password pada input box bernilai True ?"
> Jawabnya :
'setelah baris kode Msgbox "good blabla.... diisi dengan baris yang
mengubah isi suatu cells dalam worksheet.
'contoh, mengubah isi cells di range A1 di worksheet bernama 'Kid' ,
maka setelah baris kode Msgbox blablabla tulis baris kode berikut :
sheets("Kid").range("a1").value = now
> Dengan adanya pengubahan nilai di sheet bernama Kid di range A1 dengan
waktu terkini tersebut, maka event sheetchange milik workbook akan bekerja,
dan range A1 di sheet 'Kid' akan diwarnai biru oleh baris kode :
Target.Font.Color = vbBlue
Saya yakin, penjelasan di atas bukanlah yang Anda harapkan.
tapi, memang demikian jawabannya, berdasar apa yang Anda utarakan.
Wassalam,
Kid
On Thu, Jun 11, 2015 at 3:15 PM, [email protected] [belajar-excel] <
[email protected]> wrote:
>
>
> Mister programnya belum sesuai dgn keinginan saya
>
> ketika saya menuliskan kode ini pada sebuah userform
>
> Private Sub CommandButton1_Click()
> Dim myCode As String
> ProsesHookInputBox "*"
> myCode = InputBox("Please Insert Your Password to Edit This Worksheet..",
> "Insert Password")
> ProsesHookInputBox
> If StrPtr(myCode) = 0 Then 'Klik cancel atau close dialog (do nothing)
> ElseIf LenB(myCode) = 0 Then 'Not Fill -> press OK (do nothing)
> ElseIf myCode = "123" Then 'Fill 123 -> OK
> MsgBox "Good...Your Password is Match", vbInformation, "Your Password"
> 'seharusnya prosedur Workbook_SheetChange Active ketika password yang
> diketikan bernilai True, prosedur nya
> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
> Dim Target As String
> Target.Font.Color = vbBlue
> End Sub
> Else 'user mengisi suatu teks yang bukan berbunyi 123 lalu menekan OK
> MsgBox "Sorry...Your Password is not Match !!!" & vbCrLf & _
> "You Can't Edit This Worksheet", vbCritical, "Your Password"
> End If
> End Sub
>
> Dia akan kembali normal ketika Workbook di open kembali.
>
>
> Sub Workbook_Open()
> UserForm1.Show
> Call Normal
> End Sub
>
> Normal merupakan module1
>
> Private Sub Normal()
> Dim sht As Worksheet
> For Each sht In ThisWorkbook.Worksheets
> sht.Cells.Font.ColorIndex = xlAutomatic
> Next sht
> End Sub
>
> Masalahnya:
> Prosedur normal sudah berfungsi tetapi prosedur Workbook_SheetChange belum
> berfungsi sesuai harapan saya yaitu (Workbook_SheetChange aktif ketika
> password pada input box bernilai True)
>
> Mohon bantuannya mister
>
>
>
>
>