Pak Mansor,
Kalau ndak salah duga,
1. Pada baris script : Set selectedRng =
Application.InputBox(Prompt:=askForCell, Title:=askTitle, Type:=8)
akan muncul error ketika user tidak menginput data range dengan benar atau
ketika dikosongkan.
Untuk hal ini, maka bisa diubah menjadi :
on error resume next
Set selectedRng = Application.InputBox(Prompt:=askForCell, Title:=askTitle,
Type:=8)
if err.number<>0 then
err.clear
on error goto 0
exit sub
endif
2. Pada baris script : Set rng = Range(selectedRng)
Jika yang dimaksud akan mengisikan data yang di-select user melalui input
box tipe range ke sebuah variabel baru, maka bentuknya :
Set rng=selectedrng
karena hasil inputbox bertipe 8 adalah object range.
3. Pada blok FOR EACH NEXT di baris yang berbunyi : For Each cell In rng
dengan adanya baris sebelumnya yang tampaknya variabel rng diisi dengan
hasil InputBox tipe 8 (input range), maka bisa diubah menjadi :
For Each cell In selectedRng
dan tidak memerlukan baris berbunyi :
Set rng = Range(selectedRng) 'yang bermasalah
atau baris seperti :
set rng=selectedRng
Kira-kira susunan script lengkap akan menjadi :
Private Sub CommandButton1_Click()
Dim rng As Range, cell As Range, selectedRng As Range
Dim askForCell As String, askTitle As String
askForCell = "Select your range"
askTitle = "Get cell"
on error resume next
Set selectedRng = Application.InputBox(Prompt:=askForCell,
Title:=askTitle, Type:=8)
if err.number<>0 then
err.clear
on error goto 0
exit sub
endif
'Set rng = Range(selectedRng)
For Each cell In selectedRng 'rng
If cell.Value >= 50 Then
cell.Font.ColorIndex = 5
Else
cell.Font.ColorIndex = 3
End If
Next cell
End Sub
Wassalamu'alaikum Wr. Wb.,
Kid.
On Sun, Apr 7, 2013 at 12:29 PM, Mansor <[email protected]> wrote:
> **
>
>
> Para Teman BeExcel,
>
> Tolong saya cari di mana error nya. File dilampirkan
>
> Terima kasih
> -Mansor
>
> Private Sub CommandButton1_Click()
>
> Dim rng As Range, cell As Range, selectedRng As Range
>
> Dim askForCell As String, askTitle As String
>
> askForCell = "Select your range"
>
> askTitle = "Get cell"
>
> Set selectedRng = Application.InputBox(Prompt:=askForCell,
> Title:=askTitle, Type:=8)
>
> Set rng = Range(selectedRng)
>
> For Each cell In rng
>
> If cell.Value >= 50 Then
>
> cell.Font.ColorIndex = 5
>
> Else
>
> cell.Font.ColorIndex = 3
>
> End If
>
> Next cell
>
> End Sub
>
>
>