Hai Udin,

Sebaiknya disempatkan mempelajari tentang datatype sampai ke
karakteristiknya.
Variabel Nilai berdatatype variant. Oleh sebab itu bisa berisi data bertipe
text (ketika cell berisi data text) atau data numerik (ketika cell berisi
bilangan) menurut baris :
     Nilai = sel.Value

Karena tipedata Nilai adalah variant, maka baris :
     If Nilai > 7 Then
tidak akan menimbulkan error walau isi dari nilai adalah data bertipe text,
karena disimpan dalam variabel nilai bertipe variant.
Andai.... andai loh ya....
1. variabel Nilai bertipe string (misal ada baris diatasnya berbunyi Dim
Nilai as string, maka baris IF ini akan error 13 juga
2. variabel Nilai bertipe numerik seperti Long, Integer, Double, Single
atau bahkan Date, maka ketika di baris kode Nilai=sel.value ternyata isi
cell adalah data teks (bertipe text atau string), maka akan muncul error 13
juga.

Jadi, error 13 itu apa sih ?
Penjelan dari VB nya sudah lengkap, yaitu : *type mismatch*

Sekarang, baris yang dikuning (karena baris IF Nilai > 7 Then tidak
menimbulkan error 13 dan isi cell adalah teks)
      SumKuning = SumKuning + Nilai - 7
Maka akan terjadi proses matematis penjumlahan dan pengurangan antara data
teks dengan data numerik.
Ini yang menyebabkan munculnya error 13.
Coba bayangkan, bisakah anda mendapatkan hasil dari proses matematis ini :
     1000 + Kudaku lari kencang - 7 = ....
Berapa isi titik-titik diatas ?

Error 13 pada kasus ini tidak ada kaitannya dengan addin apapun.

Jadi, bagaimana caranya supaya gak error 13 lagi ?

Perhatikan bagian :
    For Each sel In Selrow.Cells
            Select Case sel.Interior.Color
            Case 65535 ' Kuning
                SumKuning = SumKuning + sel.Value
            Case 12611584 ' Biru
                Nilai = sel.Value
                If Nilai > 7 Then
                    SumKuning = SumKuning + Nilai - 7
                    Nilai = 7
                End If
                SumBiru = SumBiru + Nilai
            Case 5287936  'Hijau
                Nilai = sel.Value
                If Nilai > 7 Then
                    SumKuning = SumKuning + Nilai - 7
                    Nilai = 7
                End If
                SumHijau = SumHijau + Nilai
            End Select
' untuk menyimpan posisi sel terakhir  tiap baris
            Set SelAkhir = sel
        Next

Ubah menjadi :

    For Each sel In Selrow.Cells
        Nilai = sel.value
       if isnumeric( nilai ) then
          nilai = cdbl( nilai )
            Select Case sel.Interior.Color
            Case 65535 ' Kuning
                'SumKuning = SumKuning + sel.Value
                SumKuning = SumKuning + nilai
            Case 12611584 ' Biru
                'Nilai = sel.Value
                If Nilai > 7 Then
                    SumKuning = SumKuning + Nilai - 7
                    Nilai = 7
                End If
                SumBiru = SumBiru + Nilai
            Case 5287936  'Hijau
                'Nilai = sel.Value
                If Nilai > 7 Then
                    SumKuning = SumKuning + Nilai - 7
                    Nilai = 7
                End If
                SumHijau = SumHijau + Nilai
            End Select
' untuk menyimpan posisi sel terakhir  tiap baris

                endif
            Set SelAkhir = sel
    Next

Wassalam,
Kid.


On Fri, Apr 13, 2012 at 08:46, KSM Absolute - Udin <[email protected]>wrote:

> **
>
>
> sebagian data adalah angka sebagian angka adalah huruf, sebelumnya tidak
> eror tapi setelah saya  instal addin datepicker muculu eror tersebut. addin
> tsb sudah saya uninstall tp tetap saja muncul "run time error '13' type
> mismatch".
> baris code yg menjadi kuning adalah
>
> Case 5287936  'Hijau
>                 Nilai = sel.Value
>                 If Nilai > 7 Then
>                     SumKuning = SumKuning + Nilai - 7
>                     Nilai = 7
>                 End If
>                 SumHijau = SumHijau + Nilai
>             End Select
>
>   ------------------------------
> *Dari:* Kid Mr. <[email protected]>
> *Kepada:* [email protected]
> *Dikirim:* Kamis, 12 April 2012 18:41
> *Judul:* Re: [belajar-excel] run time error 13 type mismatch
>
>
> Coba cek isi dari range k4:As300 memiliki tipe data apa saja.
>
> Salam
> Kid
>
> On Thu, Apr 12, 2012 at 16:55, KSM Absolute - Udin <[email protected]>wrote:
>
> **
>
>  Sub sumcolor(daerah As Range)
>     Dim Selrow As Range
>     Dim sel As Range
>     Dim SelAkhir As Range
>     Dim SumKuning, SumBiru, SumHijau As Double
>
>     For Each Selrow In daerah.Rows
>         SumKuning = 0
>         SumBiru = 0
>         SumHijau = 0
>
>
>
>

Kirim email ke