Ibu Siti dan teman-teman, Terimakasih banyak kebaikannya untuk membantu dan memberikan pencerahan... Semoga sukses selalu bersama Anda.
Salam, Gusti ________________________________ From: belajar-excel@yahoogroups.com [mailto:belajar-ex...@yahoogroups.com] On Behalf Of siti Vi Sent: Thursday, September 03, 2009 4:28 AM To: belajar-excel Subject: Re: [belajar-excel] Macro/VB membuka file sekedar tambahan & komentar kesiangan.. -------------------------------------------------------------- membuka workbook (dari vba) tentu banyak (lebih dari satu) caranya ada yg dibuat rumit ada yg dibuat sederhana, tentunya kita memilih yg sederhana sekaligus efektip wal efisien.. di dalam suatu aplikasi (yg berbasis excel) membuka workbook, biasanya SUDAH diketahui path dan nama workbooknya, jadi dengan fso browse for folder menjadi kurang praktis. (kalau memang ini keperluannya dari menu file kan sudah ada kemudahan-nya) Tetapi dlm aplikasi tertentu, hal spt itu mungkin saja diperlukan. Sebelum bicara lebih lanjut, ada suatu tips begini: Dlm suatu aplikasi (berbasis excel), semua file yg terkait dlm aplikasi tsb, SEBAIKNYA disimpan di FOLDER Yg SAMA (se-folder) dgn file utama (yaitu file yg mengandung makro mengenai aplikasi tsb) Workbook yg mengandung code vba yg sedang dijalankan, di VBA dikenal dengan nama khusus = ThisWorkbook. Dengan demikian PATH bagi semua file yg terkait dengan aplikasi tsb tentulah SAMA (yaitu path milik ThisWorkbook) Keadaan yg menguntungkan spt ini dapat kita manfaatkan untuk membuat 1 variable bertype string yg menyimpan informasi Path yg akan sering digunakan itu, misal: dim xPath as string xPath = Thisworkbook.Path & "\" Nantinya setiap akan mengakses / membuka file yg terkait dengan aplikasi tsb (yg sudah dengan 'sengaja' kita taruh se-Folder dengan FileUtama /ThisWorkbook) kita tinggal bilang: xpath & NamaFile. Cara ini memberikan kemudahan dikemuaidn hari, yaitu jika dipindah ke folder manapun, misal applikasi yg harus dikirim ke milis dan setiap member mencobanya; foldernya kan bisa sejuta macam, tetapi dgn cara tsb makro tidk perlu di-edit lagi; asal kita tetap konsisten (file yg terkait dlm aplikasi dijadikan se-Folder) Kembali ke masalah pak yugus, kalau ndak salah tangkap maksud pak yugust ingin 1. men-Check dulu apakah workbook yg akan dibuka, (apakah sudah terbuka atau belum) 2. Jika belum (maka dibuka), jika sudah (maka diaktifkan) masukan dari pak mangujang_k, sepertinya sudah menjawab keperluan pak yugus. cara lain <> mengetahui apakah suatu workbook tertentu sudah terbuka berhubung semua workbook yg sudah terbuka menjadi anggota object koleksi bernama Workbooks Jika keperluan ini akan sering diulang, maka udf dibawah ini akan memberi kemudahan: private funtion IsOpen(strW as string) as boolean dim w as workbook for each w in workbooks if w.name = strW then isopen = true exit function end if next w end function variable /nama fungsi IsOpen di awal prosedur tidak perlu di-init = False, karena Boolean ketika dibuat SUDAH selalu bernilai False. penggunaan udf tsb dlm prosedur if IsOpen("stringNamaWorkbook.xls") then workbooks("stringNamaWorkbook.xls").activate else workbooks.open "stringNamaWorkbook.xls" end if path tidak perlu di sebutkan karena kita yakin workbook yg dikehendaki ada di folder yg sama (dgn file yg menandung makro ini)