Tentang : > Seandainya dibuatkan macro, bisa apa tidak yaa code untuk klik kanan > dibuat sendiri?
> hmmm... dengan CustomUI terhadap context menu tab sheet, bisa dilakukan.... > ribetnya, termasuk mengatur supaya hanya sheet tersebut saja yang akan mengerjakan prosedur VBA copy sheet values, sedang sheet lain tetap pakai defaultnya, akan ada keribetannya tersendiri. > secara umum, dimungkinkan... yaitu customui bagian context menu tab sheet.. Regards, Kid On Thu, Jun 27, 2019 at 12:30 PM Agus [email protected] [belajar-excel] < [email protected]> wrote: > > > Assalamu'alaikum warahmatullah wabarakatuh > Terima kasih mas Kid, > Kesimpulannya tidak bisa diatur agar klik kanan sheet, move or copy > hasilnya values. > Seandainya dibuatkan macro, bisa apa tidak yaa code untuk klik kanan > dibuat sendiri? > > Ilustrasi: > Sebuah icon pada sebuah group dapat kita nonaktifkan dengan customUI, > kemudian icon tersebut kita ganti dengan icon yang baru namun gambarnya > persis sama dengan icon yang lama. > icon yang baru kita jalankan dengan macro. > sebagai pengguna awam, saya menganggap tidak ada perubahan apapun pada > tab, walaupun sebenarnya ada icon dengan perintah baru. > > Mas Kid, dapat atau tidak klik kanan pada sheet diubah seperti ilustrasi > di atas? > > Terima kasih. > Regard > Wasalamu'alaikum warahmatullah wabarakatuh > > NangAgus > > On 6/26/2019 23:54, 'Mr. Kid' [email protected] [belajar-excel] wrote: > > > Wa'alaikumussalam wr wb > > mas Nang, > > melalui proses tersebut tidak dimungkinkan.. > begini : > [image: imgVBAcopysht.gif]Dari gambar di atas : > 1. Proses copy sheet di workbook yang sama dengan context menu milik tab > sheet > yaitu proses klik kanan tab sheet -> move or copy -> ke workbook yang > sama sebelum sheet tertentu -> centang create a copy -> OK > > hasilnya seperti gambar pojok kiri atas <myData.xlsx:1 [baca: file > myData.xlsx window 1 (yaitu di sheet DATA)]> ke gambar pojok kiri bawah > (myData.xlsx:2) > > sheet akan di-copy secara utuh (formula, format [termasuk > conditional formatting], dsb) > > memanfaatkan VBA, bisa dengan kode berbunyi seperti ini : (sesuaikan > object dengan keadaan setempat) > Sheet1.Copy after:=Sheets(Sheets.Count) > > jadi, ketika ingin hasilnya values tapi tetap menjaga semua format, > maka hasil copy sheet tersebut yang di-values dengan kode : > Sheets(Sheets.Count).usedrange.copy > Sheets(Sheets.Count).usedrange.pastespecial xlpastevalues > > 2. Proses copy sheet ke workbook baru dengan context menu milik tab sheet > yaitu proses klik kanan tab sheet -> move or copy -> pilih (new book) > -> centang create a copy -> OK > > hasilnya seperti gambar pojok kiri atas <myData.xlsx:1 [baca: file > myData.xlsx window 1 (yaitu di sheet DATA)]> ke gambar atas kedua dari kiri > (book2) > > sheet akan di-copy secara utuh (formula, format [termasuk > conditional formatting], dsb) ke workbook baru > > memanfaatkan VBA, perlu 2 proses, yaitu : > 1. membuat workbook baru sebagai target > 2. copy sheet dari file sumber ke workbook baru > > hal ini dimungkinkan karena workbook baru dibuat di instance Excel > yang sama (lihat gambar task manager), yaitu : > pada instance Microsoft Excel (3) berisi workbook bernama book2 > (hasil buat workbook baru sebagai target lokasi paste) dan workbook > myData.xlsx (file sumber) > > terkadang, perlu juga untuk membuang sheets yang dibuat Excel saat > membentuk workbook baru. > > secara umum, baris kodenya begini : > > Dim wbkb As Workbook, shta As Worksheet > Set shta = Sheet1 > Set wbkb = Workbooks.Add > shta.Copy after:=wbkb.Sheets( wbkb.Sheets.count) > > > jika butuh mem-values formula, maka lakukan copy paste values > terhadap object wbkb.Sheets( wbkb.Sheets.count) > > 3. Proses copy sheet ke workbook baru langsung hanya values-nya (tanpa > formula, tanpa conditional format, dsb) > > dilakukan dengan cara melakukan copy paste ke workbook baru yang ada > di-instance Excel yang berbeda > > hasilnya seperti gambar pojok kiri atas <myData.xlsx:1 [baca: file > myData.xlsx window 1 (yaitu di sheet DATA)]> ke gambar kanan bawah (book1) > > pada task manager, workbook myData.xlsx berada di instance Microsoft > Excel (3) [yang bawah], sedangkan workbook book1 berada di instance > Microsoft Excel [yang atas] > > memanfaatkan VBA, perlu 4 proses, yaitu : > 1. membentuk Excel Application baru (instance Excel yang baru) > 2. membentuk workbook baru dalam instance baru tersebut > 3. meng-copy area range data di file sumber (instance Excel sumber) > 4. mem-paste ke sheet target di workbook baru yang ada di instance > Excel yang baru > > secara umum, bunyi baris kode-nya begini : > > Dim shta As Worksheet, xlapp2 As Excel.Application, wbkb As Workbook > Set shta = Sheet1 > Set xlapp2 = New Excel.Application > xlapp2.Visible = True > Set wbkb = xlapp2.Workbooks.Add > shta.UsedRange.Copy > wbkb.Sheets(1).Paste > Set xlapp2 = Nothing > > > Dari uraian diatas, maka perlu penanganan tersendiri untuk mencegah > munculnya menu move or copy sheet di dalam context menu tab sheet. > Hal ini bisa dilakukan dengan cara mem-protect struktur workbook (cukup > strukturnya saja). > Proses proteksi pertama kali bisa dilakukan secara manual melalui menu > Review -> grup menu Protect -> Protect Workbook -> isi password -> centang > hanya Structure -> OK -> save workbook > Kemudian dalam proses copy sheet oleh VBA, diawali dengan baris : > thisworkbook.unprotect "passwordnya" > lalu sebelum proses selesai, dilakukan protek workbook kembali : > thisworkbook.protect "passwordnya", structure:=true > > Kira-kira demikianlah... > > Wassalamu'alaikum wr wb > Kid > > > On Wed, Jun 26, 2019 at 7:34 PM Agus [email protected] [belajar-excel] < > [email protected]> wrote: > >> >> >> Assalamu'alaikum warahmatullah wabarakatuh, >> Mas Kid mau tanya: >> Kalau seandainya saya klik kanan di sheet, terus Move or copy .. pilih >> to_book :(newbook). >> bisa apa tidak diatur lewat vba hasil copyannya hanya values. >> Maksudnya mencegah orang lain untuk copy seluruh sheet, namun hanya copy >> values-nya saja. >> terima kasih >> Wasalamualaikum warahmatullah. >> Kenang Agus >> >> >> On 6/26/2019 10:34, 'Mr. Kid' [email protected] [belajar-excel] wrote: >> >> >> Hai Budi Priyo, >> >> 1. apakah ada protec nya menggunakan macro juga. dan apakah protec tsb >> tidak berpengaruh dengan macro yg ada >> *** yang ini terkait proteksi sheet dan proteksi cells >> > pastikan sheet tidak dalam keadaan ter-protect >> > blok seluruh cells (atau hanya cells tertentu yang akan disembunyikan >> formulanya) -> klik kanan cells terpilih -> format cells -> tab Protection >> -> centang Locked dan Hidden -> OK >> > lalu protect sheet secara manual >> > atau dengan baris kode berbunyi (jalankan di intermediate window [tekan >> ctrl G -> tulis baris kodenya -> tekan enter]) >> sheets("nama sheetnya").protect "passwordnya" >> > jika ingin agar VBA bisa bekerja pada sheet terproteksi tanpa perlu >> membuka proteksi sheet, gunakan baris kode berikut ini : >> sheets("nama sheetnya")..protect "passwordnya", >> userinterfaceonly:=true >> > save workbook >> >> 2. apa bila sheet tersebut di copy (copysheet) formula yg ada dalam >> sheet tersebut tidak ikut alias values secara otomatis, >> *** yang ini terkait copy values sheet >> > buat sebuah general module -> buat sebuah blok prosedur jenis sub, >> misal bernama CopasValueSheet >> > jika sheet diproteksi secara manual atau dengan VBA tanpa opsi >> userinterfaceonly:=true, maka perlu di-unprotect dulu dengan baris kode : >> sheets("nama sheetnya").unprotect "passwordnya" >> > proses akan terdiri dari 2 bagian utama, yaitu copy sheet menjadi sheet >> baru, kemudian copy values nilai yang ada di hasil copy sheet tadi >> 'jika copy di workbook yang sama >> sheets("nama sheetnya").copy before:=sheets(1) 'copy sheet >> 'copy paste values hasil copy sheet >> sheets(1).usedrange.copy >> sheets(1).usedrange.pastespecial xlpastevalues >> >> 'jika copy ke workbook baru : >> dim wbka as workbook, wbkb as workbook >> set wbka=thisworkbook >> set wbkb=workbooks.add >> with wbkb >> wbka.sheets("nama sheetnya").copy before:= ..sheets(1) 'copy >> sheet >> .sheets(1).usedrange.copy >> .sheets(1).usedrange.pastespecial xlpastevalues >> end with >> wbka.activate >> >> 3. dijalankan dengan macro di sheet >> *** ini tentang pemicu (event) yang digunakan agar VBA copy sheet diproses >> > sebaiknya diletakkan di modul Thisworkbook dengan event yang sesuai, >> misal event ketika cells a1 di double click (sila disesuaikan dengan >> kebutuhan setempat) >> > pada modul Thisworkbook -> di object Workbook -> buat event >> bernama Workbook_SheetBeforeDoubleClick -> isi dengan baris kode berikut >> (sesuaikan dengan keadaan setempat) >> if sht.name="nama sheetnya" then >> 'jalankan prosedur copy sheet, misal prosedur CopasValueSheet >> hasil nomor 2 di atas >> CopasValueSheet >> cancel=true >> endif >> > dengan begini, maka VBA code yang ada di sheet yang di-copy tidak akan >> terbawa ke hasil copy sheet >> >> Regards, >> Kid >> >> >> On Thu, Jun 20, 2019 at 11:28 AM Budi Priyo [email protected] >> <[email protected]> [belajar-excel] <[email protected]> >> wrote: >> >>> >>> Salam kenal, saya baru bergabung di sini dan ingin menanyakan, >>> Saya punya dokument yg dijalankan dengan macro di sheet dan apa bila >>> sheet tersebut di copy (copysheet) formula yg ada dalam sheet tersebut >>> tidak ikut alias values secara otomatis, apakah ada protec nya menggunakan >>> macro juga. dan apakah protec tsb tidak berpengaruh dengan macro yg ada, >>> karena dokument tersebut terdapat formula rahasianya. >>> Mohon rekan milis mungkin ada yg bisa bantu. >>> Sayaucapkan terima kasih >>> >> >> > >

