google scrip hücre koruma hk.

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Google tablo içinde bir sayfa içinde
["A1:A5","B6:B10","C11:C15"]

hücrelerini değişikliğe karşı korumak için nasıl bir script yazılabilir?

aşağıdaki şekilde bir kod buldum ama; ilgili hücreler kilitlenmiyor.

Kod:
function myFunction(){
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');
var unprotected = sheet.getRange('B2:C5');
protection.setUnprotectedRanges([unprotected]);

var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}
}
yardımlarınız için şimdiden teşekkürler,
iyi akşamlar.
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhabalar;

Kod:
function protectRanges() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangesToProtect = ["A1:A5", "B6:B10", "C11:C15"];
  for (var i = 0; i < rangesToProtect.length; i++) {
    var range = sheet.getRange(rangesToProtect[i]);
    var protection = range.protect().setDescription('Korunan Hücreler');
    protection.removeEditors(protection.getEditors());
    protection.addEditor(Session.getEffectiveUser());
    if (protection.canDomainEdit()) {
      protection.setDomainEdit(false);
    }
  }
}
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar;

Kod:
function protectRanges() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangesToProtect = ["A1:A5", "B6:B10", "C11:C15"];
  for (var i = 0; i < rangesToProtect.length; i++) {
    var range = sheet.getRange(rangesToProtect[i]);
    var protection = range.protect().setDescription('Korunan Hücreler');
    protection.removeEditors(protection.getEditors());
    protection.addEditor(Session.getEffectiveUser());
    if (protection.canDomainEdit()) {
      protection.setDomainEdit(false);
    }
  }
}
Hocam teşekkürler,
Bu kodlar eğer tabloyu düzenleme yetkisine sahip olan biri için de geçerli midir?

Bir tabloda test yaptım, ilgili hücrelerde değişiklik yapabiliyorum.
iyi akşamlar.
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Vermiş olduğum kod, düzenleme yetkisi bulunan kişilerin düzenleme yapmasına izin veriyor. Sadece sizin düzenleme yapmasına izin vermesini istiyorsanız, şöyle revize edin;

Kod:
function protectRanges() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangesToProtect = ["A1:A5", "B6:B10", "C11:C15"];
  for (var i = 0; i < rangesToProtect.length; i++) {
    var range = sheet.getRange(rangesToProtect[i]);
    var protection = range.protect().setDescription('Korunan Hücreler');
    var editors = protection.getEditors();
    for (var j = 0; j < editors.length; j++) {
      protection.removeEditor(editors[j]);
    }
    var me = Session.getEffectiveUser();
    protection.addEditor(me); // Sadece kendi hesabınıza izin verirsiniz
    if (protection.canDomainEdit()) {
      protection.setDomainEdit(false);
    }
  }
}
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Vermiş olduğum kod, düzenleme yetkisi bulunan kişilerin düzenleme yapmasına izin veriyor. Sadece sizin düzenleme yapmasına izin vermesini istiyorsanız, şöyle revize edin;

Kod:
function protectRanges() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangesToProtect = ["A1:A5", "B6:B10", "C11:C15"];
  for (var i = 0; i < rangesToProtect.length; i++) {
    var range = sheet.getRange(rangesToProtect[i]);
    var protection = range.protect().setDescription('Korunan Hücreler');
    var editors = protection.getEditors();
    for (var j = 0; j < editors.length; j++) {
      protection.removeEditor(editors[j]);
    }
    var me = Session.getEffectiveUser();
    protection.addEditor(me); // Sadece kendi hesabınıza izin verirsiniz
    if (protection.canDomainEdit()) {
      protection.setDomainEdit(false);
    }
  }
}
teşekkürler Hocam,
var me = Session.getEffectiveUser();

bu satır tablonun sahibi' ni ifade ediyor sanırım;

iyi akşamlar
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba,
protection.addEditor(me); şu kod, sahibini ifade ediyor. Ancak bunu arttırabilme şansımız da var örneğin;
protection.addEditors(['kullanici1@ornek.com', 'kullanici2@ornek.com']);

İyi çalışmalar.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
çok teşekkürler Hocam,
iyi ki varsınız
 
Katılım
11 Temmuz 2024
Mesajlar
150
Excel Vers. ve Dili
Excel 2021 Türkçe
Sizde iyi ki varsınız, iyi çalışmalar
 
Üst