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>>