Dear Mr. Kid, Kalau dilihat dari rumus dibawah, bisakah saya simpulkan bahwa semua fungsi2 yang ada di Excel seperti Sum, Average, count, sumif, match, dll, bisa di jadikan code VBA dengan diawali dengan
Evaluate ? Trims jawabannya, Wassalam, Tio "Mr. Kid" <mr.nm...@gmail.com> Sent by: belajar-excel@yahoogroups.com 02/18/2013 01:45 PM Please respond to belajar-excel To: belajar-excel@yahoogroups.com cc: Subject: Re: [belajar-excel] Mengecek isi cell Bunyi formula yang diinginkan tertulis di cell adalah : =Countif(RangeHeader,"Keterangan") Karena ada inputan berupa string berbunyi "Keterangan" (lengkap beserta tanpa petik dua), maka setiap tanda petik dua harus menjadi 2 bijik, menjadi : =Countif(RangeHeader,""Keterangan"") kemudian lengkapnya menjadi : range("b1").formula = "=Countif(RangeHeader,""Keterangan"")" seperti sudah dicontohkan pada posting terdahulu berbunyi : Evaluate("=countif(b2:e2,""*Kelas*"")") Wassalam, Kid. 2013/2/18 <tio.ad...@ptssb.co.id> Terima kasih Mr. Kid, Saya coba cara lain, yaitu : Range("B2").Select 'Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlToRight)).Name = "RangeHeader" Range("B1").Select Range("B1").FormulaR1C1 = "=Countif(RangeHeader,"Keterangan")" If Range("B1").Value = 1 Then MsgBox ("Ada") Else MsgBox ("Tidak ada") End If Kok di bagian "Keterangan" error yah, yaitu warning msg nya : needs end statement, kenapa yah ??? Tapi kalau apostrope nya di buang tidak error, tapi khan seharusnya pakai apostrope Terima kasih, Wassalam, Tio "Mr. Kid" <mr.nm...@gmail.com> Sent by: belajar-excel@yahoogroups.com 02/15/2013 08:29 PM Please respond to belajar-excel To: belajar-excel@yahoogroups.com cc: Subject: Re: [belajar-excel] Mengecek isi cell Hai Tio, Bagaimana jika tidak menggunakan For each Next ? Kira-kira bunyinya : Dim sMsg As String If Evaluate("=countif(b2:e2,""*Kelas*"")") = 0 Then sMsg = "- Tidak ada kolom bernama Kelas" & vbCrLf End If If Evaluate("=countif(b2:e2,""*Keterangan*"")") = 0 Then sMsg = sMsg & "- Tidak ada kolom bernama Keterangan" & vbCrLf End If If LenB(sMsg) <> 0 Then MsgBox "Data kurang tepat karena :" & vbCrLf & sMsg, vbExclamation Else MsgBox "Data valid.", vbInformation End If Jika tetap ingin pakai For Each Next, bisa disusun dengan banyak cara dan salah satunya adalah : Dim rng As Range Dim vKolom As Variant Dim bNotFound As Boolean Dim sMsg As String sMsg = vbNullString For Each vKolom In Array("Kelas", "Keterangan") bNotFound = True For Each rng In Range("b2:e2") If InStr(LCase$(rng.Value), LCase$(vKolom)) <> 0 Then bNotFound = False Exit For End If Next rng If bNotFound Then sMsg = sMsg & "- Tidak ada kolom bernama " & vKolom & vbCrLf End If Next vKolom If LenB(sMsg) <> 0 Then MsgBox "Data tidak valid karena :" & vbCrLf & sMsg, vbExclamation Else MsgBox "Data valid.", vbInformation End If Selain kedua cara diatas, masih ada banyak cara lain, seperti penggunaan methods find maupun worksheet function countif. Memanfaatkan cell bantu berformula juga bisa. Wassalam, Kid. 2013/2/15 <tio.ad...@ptssb.co.id> Dear Be-Exceller, Saya punya 4 kolom yang isinya Nama , Kelas, Umur, dan Keterangan. Saya ingin ada button untuk mengecek apakah nama cell dari ke2 kolom dari ke-4 kolom itu isinya adalah benar yaitu yang isi cellnya adalah Kelas dan Keterangan. Saya coba pakai For Each..Next, tapi gak berhasil. Karena kadang User tidak menulis nama cell secara benar yaitu yang isinya Kelas dan Keterangan. Kalau tidak ada cell yang isinya Kelas maka msgbox "Tidak ada cell yang bernama Kelas", dan juga kalau tidak ada cell yang isinya Keterangan maka ada msgbox "Tidak ada cell yang bernama Keterangan". Ini picturenya : Terima kasih, Wassalam, Tio
<<image/gif>>
<<image/gif>>