Skip to main content

Search

Cara mengunci Banyak Sheet di spreadsheet dengan AppScript

Mengunci sheet sangat dibutuhkan saat kita bekerja dengan banyak editor dan waktu pengeditan harus kita batasi karena jika sheet tidak kita kunci maka semua editor bisa melakukan penulisan dalam sheet padahal data itu sudah digunakan sebagai laporan.

Cara mengunci Banyak Sheet di spreadsheet dengan AppScript

Namun yang jika sheet yang kita miliki dalam jumlah yang banyak maka tentu itu akan menyulitkan kita untuk memproteksi satu persatu oleh karena itu kita bisa membuat tools dengan bantuan Appscript.  Cara mengunci Banyak Sheet di spreadsheet dengan AppScript yang nantinya kita bisa menamkan menu sendiri di spreadsheet yang berfungsi untuk mengunci secara massal jadi ini sangatlah mudah berikut adalah cara yang bisa kita lakukan

1. langkah pertama buka file spreadsheet kemudian klik menu extension kemudian pilih Appscript

2. Buat function untuk pada code.gs untuk membuat perintah untuk melakukan kunci sheet secara massal anda bisa copy paste code berikut ini. 

Function Protect

function protectSheet() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheetNames = [
'nama sheet',
];
const editors = ['ganti dengan alamat email yang dapat melakukan edit'];

for (const name of sheetNames) {
const sheet = spreadsheet.getSheetByName(name);

if (!sheet) {
console.log(`Sheet ${name} tidak ditemukan.`);
continue;
}

const protection = sheet.protect();
protection.addEditors(editors);
protection.setWarningOnly(false);

console.log(`Sheet ${name} berhasil dilindungi.`);
Utilities.sleep(1000);
}
}


Function Unprotect

function unprotectSheet() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheetNames = [
'nama sheet',
];

for (const name of sheetNames) {
const sheet = spreadsheet.getSheetByName(name);

if (!sheet) {
console.log(`Sheet ${name} tidak ditemukan.`);
continue;
}

const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET);
for (const protection of protections) {
protection.remove(); // Hapus proteksi
console.log(`Proteksi pada sheet ${name} telah dihapus.`);
}

Utilities.sleep(1000);
}
}


Funtion untk menampilkan menu protect di spreadsheet


function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('Proteksi Sheet')
.addItem('Lindungi Sheet', 'protectSheet') // Menambahkan opsi proteksi
.addItem('Hapus Proteksi', 'unprotectSheet') // Menambahkan opsi unprotect
.addToUi();
}


3. Langkah berikut klik simpan dan jalankan code tersebut pada funtion onOpen

4. Kita menuju file spreadsheet klik menu proteksi  sheet  kemudian pilih lindungi sheet dan tunggu hingga proses kita 

5. Untuk membuka kunci sheet secara masal kalian bisa klik menu proteksi sheet kemudian pilih hapus proteksi tunggu proses selesai

6. Jika anda tidak menginkan ada menu tambahan kalian tidak perlu memasukkan function onOpen