Ok Trimakasih akan saya pelajari dan saya coba.

Pada tanggal Kam, 27 Jun 2019 pukul 12.30 Agus [email protected]
[belajar-excel] <[email protected]> menulis:

>
>
> 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
>>>
>>
>>
>
>

Kirim email ke