Coba simak dongeng dalam prosedur berikut : Public Sub CobaSusunArrayNamaSheet() Dim sht As Worksheet Dim sShtName() As String Dim lShtIdx As Long Dim lCalc As Long
lCalc = Application.Calculation 'simpan setting kalkulasi excel yang sedang digunakan Application.Calculation = xlCalculationManual 'contoh set kalkulasi excel dalam mode manual ReDim sShtName(1 To Sheets.Count) As String 'dengan loop per object sheet memanfaatkan for each lShtIdx = 0 For Each sht In ThisWorkbook.Worksheets lShtIdx = lShtIdx + 1 sShtName(lShtIdx) = sht.Name 'masukkan nama sheet ke array shtname 'sht.Copy 'copy sheet yang sedang diproses (silakan tentukan kemana akan di-paste) Next sht 'tes multiple select semua sheet, ganti select dengan copy jika akan copy langsung semua sheet dalam array 'meskipun sebenarnya copy sheet bisa dilakukan saat loop semua sheet untuk menyusun array nama sheet Sheets(sShtName()).Select 'contoh pemakaian methods calculate Application.Calculate 'perintahkan excel untuk mengkalkulasi aplikasi Sheets(1).Calculate 'perintahkan untuk kalkulasi sheet dengan index 1 saja Sheets(1).Range("a2:g78,k34:m34").Calculate 'perintahkan untuk kalkulasi range tertentu di sheet berindex 1 'kembali ke array sheet 'susun array nama sheet dengan loop per object sheet memanfaatkan for terhadap index sheet For lShtIdx = 1 To Sheets.Count sShtName(lShtIdx) = Sheets(lShtIdx).Name 'masukkan nama sheet ke array shtname 'sht.Copy 'copy sheet yang sedang diproses (silakan tentukan kemana akan di-paste) Next lShtIdx 'tes multiple select semua sheet, ganti select dengan copy jika akan copy langsung semua sheet dalam array 'meskipun sebenarnya copy sheet bisa dilakukan saat loop semua sheet untuk menyusun array nama sheet Sheets(sShtName()).Select Application.Calculation = xlCalculationAutomatic 'pasksa mode kalkulasi excel jadi automatic 'kayanya lebih enak dikembalikan ke selera user saat sebelum proses ini dijalankan 'jadi kembalikan mode kalkulasi ke mode yang disimpan dalam variabel lcalc tadi Application.Calculation = lCalc End Sub Wassalam, Kid. 2012/6/23 <yusajing_...@yahoo.com> > Dear All Pakar Excel, > > Saya sedang membuat coding macro, akan tetapi saya menemukan kesulitan > ketika harus meng copy lebih dari 1 sheet secara bersamaan. Ketika saya > rekam macro hasilnya keluar seperti berikut : > > Sheets(array("Sheet1","Sheet2","Sheet3")).copy > > Masalahnya adalah jumlah sheets yg ingin saya copy jumlah dan namanya > tidak tetap akan tetapi indexnya yang sama yaitu sheets dengan index 5 > sampai sheets terakhir. Saya coba dengan menggunakan index dngn coding > sebagai berikut > > Sheets(array(1,2,3)).copy > > Ternyata bisa jika diganti index. > Jd saya buat codingnya seperti berikut : > > For x=5 to sheets.count > > Array ???? > > Next > > Sheets(array???).copy > > End sub > > Pertanyaan saya adalah, bagaimana membuat arraynya agar flexibel ? > > Mohon pencerahannya. > > Terimakasih > > Best regards > Powered by Telkomsel BlackBerry® > > ------------------------------------ > > --------------------------------------------------------------------- > bergabung ke milis (subscribe), kirim mail kosong ke: > belajar-excel-subscr...@yahoogroups.com > > posting ke milis, kirimkan ke: > belajar-excel@yahoogroups.com > > berkunjung ke web milis > http://tech.groups.yahoo.com/group/belajar-excel/messages > > melihat file archive / mendownload lampiran > http://www.mail-archive.com/belajar-excel@yahoogroups.com/ > atau (sejak 25-Apr-2011) bisa juga di : > http://milis-belajar-excel.1048464.n5.nabble.com/ > > menghubungi moderators & owners: belajar-excel-ow...@yahoogroups.com > > keluar dari membership milis (UnSubscribe): > kirim mail kosong ke belajar-excel-unsubscr...@yahoogroups.com > ---------------------------------------------------------------------Yahoo! > Groups Links > > > >