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 <[email protected]>
> 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:
> [email protected]
>
> posting ke milis, kirimkan ke:
> [email protected]
>
> berkunjung ke web milis
> http://tech.groups.yahoo.com/group/belajar-excel/messages
>
> melihat file archive / mendownload lampiran
> http://www.mail-archive.com/[email protected]/
> atau (sejak 25-Apr-2011) bisa juga di :
> http://milis-belajar-excel.1048464.n5.nabble.com/
>
> menghubungi moderators & owners: [email protected]
>
> keluar dari membership milis (UnSubscribe):
> kirim mail kosong ke [email protected]
> ---------------------------------------------------------------------Yahoo!
> Groups Links
>
>
>
>