Terimakasih atas penjelasannya,, Ya saya sudah mengerti solusinya dan sudah saya perbaiki dan sekarang sudah bisa jalan.
Saya ingin melanjutkan pertanyaan, seperti yg terlampir bahwa pada workbook tsb, macro akan membuat tabel yg saya inginkan, akan tetapi utk pengaturan print agar pas harus saya lakukan sendiri. Adakah perintah atau coding agar lebar tabel tersebut sebesar lebar kertas (landpage) dengan fit 65% dan kertas legal Cara manual yg saya lakukan biasanya melebar lebarkan kolom sampai menyentuh garis pembatas print. Mohon pencerahannya, Best regards, Sent from my BlackBerry® powered by Sinyal Kuat INDOSAT -----Original Message----- From: "Mr. Kid" <[email protected]> Sender: [email protected] Date: Thu, 19 May 2011 05:34:33 To: <[email protected]> Reply-To: [email protected] Subject: Re: [belajar-excel] Error : TypeMismatch Perbandingan membutuhkan kesamaan datatype, dan sudah dijelaskan mbak Siti. Karena akan dibandingkan dengan string, coba dikonversi menjadi string lebih dulu dengan fungsi CStr misal : CStr(cell(bla).value) = "Ins" Coba buat penggunaan variabel secara explicit, biar agak mudah membacanya. Pembatasan jumlah loop sebaiknya dilakukan (biar gak jadi kebiasaan asal hantam aja semuanya di loop). Loop pada data yang sedikit, mungkin gak terasa, tetapi tetap ada kegiatan mubazir yang bisa disedikitkan. Loop ke semua sheet sudah dijelaskan oleh mbak Siti. Jika ada kriteria nama sheet atau malah sheet tertentu saja, maka gunakanlah menjadi dasar loop. Loop dengan for each .. next bisa digunakan untuk hal ini. Misal : dim shtLoop as worksheet for each shtloop in sheets( array( "sheet1" , "sheet2" , "sheet embuh") ) 'kode disini shtloop.activate next shtloop atau pakai string daftar sheet dim sSht() as string dim vSht as variant ssht() = split( "sheet1,sheet2,sheet embuh", "," ) '-> syaratnya, sheet harus bener2 ada, kalau tidak, pasang error trap saat akan pakai sheet tersebut for each vsht in ssht sheets(vsht).activate next vsht atau nama sheet punya sesuatu tanda, misal sheet punya teks 'tgl' dim lSht as long for lsht=1 to sheets.count if instr(sheets(lsht).name, "tgl")<>0 then 'kode disini endif next lsht Pada loop object yang lain, sebisa mungkin dibatasi juga, misal pada range yang ada datanya saja dengan bantuan object usedrange dan sebagainya. Multi kondisi, bisa memanfaatkan select case agar tidak capek tulis OR bla, terutama untuk proses yang sama. Untuk kriteria yang pasti tunggal dan gak mesti berasal dari nilai yang sama, misal potongan teks yang menjadi syarat, yang pengambilannya gak pasti dari satu tempat yang sama untuk semua kondisi, if elseif else endif bisa digunakan. Regard, Kid. 2011/5/19 STDEV(i) <[email protected]> > > > Jika makro tsb *bukan* buatan anda sendiri, sebetulnya akan sangat jelas > terjawab bila anda tanyakan kepada pembuatnya; yg tentu sangat mengenal > perilaku dan semua sudut yg ada dlm makro tsb. > > Tetapi karena tidak ada catatan siapa pembuatnnya, maka saya anggap > makro itu buatan anda sendiri. (dan anda sudah lupa apa saja yg akan > dilakukan oleh makro tsb, sehingga ketika terjadi sesuatu anda bingung) > > Mengenai munculnya error message RunTime Error '13' Type MisMatch: > *MUNGKIN* karena *Cell(i, u) *saat itu berisi *data BUKAN TYPE TEXT / > String* > makanya *ketika mau di test [ dibandingkan: apakah sama dengan text 'Ins" > ]* > VBA nya* harus* bilang kepada anda bahwa telah terjadi *type mismatch, > *ketidak > samaan > dua type data yg diperbandingkan) > ( Lha wong "type error" (?) kok dibandingkan dengan *type Text / String*! > ) > > Perlu diketahui bahwa i dan u di makro anda itu adalah counter/pencacah > loop > (bilangan yg selalu berubah sesuai batasan loop) > *i * oleh anda, sebagai pemogramnya, anda tentukan untuk mewakili index > baris; > dan *u* oleh anda (sebagai pemogramnya) anda jadikan index kolom, > Jadi *Cells(i, u)* bisa saja suatu saat berupa sebuah range / *cell AS17 > * > (atau bahasa vba nya * Cells(17,45)* > > Cobalah melihat-lihat pemandangan di cell AS17 di satu-satunya sheet pada > workbook > kiriman anda, berisi apa dan menghasilkan apa? > > [image: error name.PNG] > > Di komputer saya, formula di cell AS17 menghasilkan error-value #NAME > karena > workbook kiriman anda itu seharusnya tidak berdiri sendiri, melainkan > harus > didampingi workbook lain yg akan dirujuk suatu range / cellsnya (links) > Malah sepertinya workbook itu berupa *add-in * > > oiya, karena adanya loop * For sht = 1 To Sheets.Count* > maka makro itupun mengerjakan hal yg sama terhadap SEMUA SHEET yg ada > di dalam workbook. yg artinya antara lain, anda tidak bisa sembarangan > menambah > worksheet kalau STRUKTUR dan isinya tidak seperti yg dikehendaki oleh > makro. > > CMIIW > > > > > 2011/5/18 Kurei recca <[email protected]> > > > > Salam Para Master Excel dan teman2 yang sedang belajar untuk dapat > mengembangkan > > dirinya dalam dunia excel, > > > > saya ingin bertanya tentang masalah Type Mismatch,, > > saya mempunyai coding macro sebagai berikut : > > > > Public Sub oo() > > > > > If Cells(i, u) = "Ins" Then > > ' bla bla bla > > End If > > > > end sub > > > > kenapa terjadi type mismatch pada coding tersebut?? tetapi bentuk tabel > yang > > saya inginkan benar jika sya hentikan proses,, > > error ini selalu muncul, saya bingung dimana letak kesalahannya. > > Jika saya hilangkan coding diatas maka error tidak akan muncul,, > > Mohon pencerahannya,, > > > > Berikut saya lampirkan filenya. > > > > Best Regards, > > Ridwan Syarif Hidayat > > >

