Google Sheets makrosundaki çalışmayan bölüm

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
629
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Arkadaşlar aşağıdaki makroyu bir google sheets e tablosunda kullanıyorum.
Sorum kodun altında:


Kod:
function onEdit(e) {

  var sheetName = e.source.getSheetName();
  var range = e.range;
  var col = range.getColumn();

  // IST Betiği: Sayfa4'te A3 hücresinde bir değer değişikliği olduğunda
  if (sheetName == 'Sayfa4' && range.getA1Notation() == 'A3') {
    // A2 hücresine "IST:" ifadesi ve A3 hücresindeki değeri yaz.
    e.source.getSheetByName('Sayfa4').getRange('A2').setValue('IST:' + range.getValue());
  }

  // Onay Kutusu Betiği: Sayfa1'deki B5'ten B12'ye kadar olan onay kutularını kontrol et.
  if (sheetName == 'Sayfa1' && col == 2 && range.getRow() >= 5 && range.getRow() <= 12) {
    var showColumn = e.source.getSheetByName('Sayfa1').getRange(range.getRow(), 12 + (range.getRow() - 5));

    if (range.getValue() === true) {
      // Onay kutusu işaretliyse sütunu göster.
      showColumn.activate();
      e.source.getSheetByName('Sayfa1').showColumns(showColumn.getColumn());
    } else {
      // Onay kutusu işaretli değilse sütunu gizle.
      e.source.getSheetByName('Sayfa1').hideColumns(showColumn.getColumn());
    }
  }


  var sheetName = e.source.getSheetName();
  var range = e.range;

  // Ek Kontroller
  if (sheetName == 'Sayfa4' && range.getA1Notation() == 'C3') {
    var c3Value = range.getValue();
    var b3Value = e.source.getSheetByName('Sayfa4').getRange('B3').getValue();
    var today = new Date();

    // C3 hücresine yazılan tarih B3 hücresindeki tarihten küçükse
    if (c3Value !== "" && c3Value < b3Value) {
      SpreadsheetApp.getUi().alert('UYARI', 'Bitiş tarihi başlangıç tarihinden küçük olamaz. Lütfen geçerli bir tarih yazınız.',
      SpreadsheetApp.getUi().ButtonSet.OK);
      range.activate(); // C3 hücresini seçili hâle getir.
      range.setValue('');// C3 hücresini sil.
      return; // Uyarı durumunda makronun burada sona ermesi için.
    }

    // C3 hücresine yazılan tarih bugünün tarihinden büyükse
    if (c3Value > today) {
      SpreadsheetApp.getUi().alert('UYARI', 'Bitiş tarihi bugünün tarihinden büyük olamaz. Lütfen geçerli bir tarih yazınız.',
      SpreadsheetApp.getUi().ButtonSet.OK);
      range.activate(); // C3 hücresini seçili hâle getir.
      range.setValue('');// C3 hücresini sil.
      return; // Uyarı durumunda makronun burada sona ermesi için.
    }

    // EĞER B3 hücresine yazılan tarih bugünün tarihinden büyükse
    if (b3Value > today) {
      SpreadsheetApp.getUi().alert('UYARI', 'Başlangıç tarihi bugünün tarihinden büyük olamaz. Lütfen geçerli bir tarih yazınız.',
      SpreadsheetApp.getUi().ButtonSet.OK);
      range.activate(); // B3 hücresini seçili hâle getir.
      range.setValue('');// B3 hücresini sil.
      return; // Uyarı durumunda makronun burada sona ermesi için.
    }

    // EĞER B3 hücresine yazılan tarih C3 hücresindeki tarihten büyükse
    if (b3Value > c3Value) {
      SpreadsheetApp.getUi().alert('UYARI', 'Başlangıç tarihi bitiş tarihinden büyük olamaz. Lütfen geçerli bir tarih yazınız.',
      SpreadsheetApp.getUi().ButtonSet.OK);
      range.activate(); // B3 hücresini seçili hâle getir.
      range.setValue('');// B3 hücresini sil.
      return; // Uyarı durumunda makronun burada sona ermesi için.
    }

    // EĞER B3 hücresi boşsa ve C3 hücresine bir şey yazılırsa
    if (b3Value === "" && c3Value !== "") {
      SpreadsheetApp.getUi().alert('UYARI', 'Başlangıç tarihi yazılmamış. Lütfen önce başlangıç tarihini yazınız.',
      SpreadsheetApp.getUi().ButtonSet.OK);
      range.activate(); // C3 hücresini seçili hâle getir.
      range.setValue('');// B3 hücresini sil.
    }
  }
}
Bu koddaki aşağıdaki bölümler C3 ve B3 hücresine yazılacak tarih bugünün tarihinden büyükse tetikleniyor.
C3 için olan bölüm çalışıyor, B3 için olan bölüm çalışmıyor.
Her şey aynı sadece hücre adresleri farklı, normalde çalışması gerekiyor diye düşünüyorum.
Yardımlarınız rica ediyorum.

B3 için olan bölüm (Çalışmıyor.)
Kod:
    // EĞER B3 hücresine yazılan tarih bugünün tarihinden büyükse

    if (b3Value > today) {

      SpreadsheetApp.getUi().alert('UYARI', 'Başlangıç tarihi bugünün tarihinden büyük olamaz. Lütfen geçerli bir tarih yazınız.',

      SpreadsheetApp.getUi().ButtonSet.OK);

      range.activate(); // B3 hücresini seçili hâle getir.

      range.setValue('');// B3 hücresini sil.

      return; // Uyarı durumunda makronun burada sona ermesi için.

    }
C3 için olan bölüm (Bu bölüm doğru çalışıyor.)
Kod:
    // C3 hücresine yazılan tarih bugünün tarihinden büyükse

    if (c3Value > today) {

      SpreadsheetApp.getUi().alert('UYARI', 'Bitiş tarihi bugünün tarihinden büyük olamaz. Lütfen geçerli bir tarih yazınız.',

      SpreadsheetApp.getUi().ButtonSet.OK);

      range.activate(); // C3 hücresini seçili hâle getir.

      range.setValue('');// C3 hücresini sil.

      return; // Uyarı durumunda makronun burada sona ermesi için.

    }
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
629
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Günceldir.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,595
Excel Vers. ve Dili
Pro Plus 2021
// Ek Kontroller
if (sheetName == 'Sayfa4' && (range.getA1Notation() == 'B3'||range.getA1Notation() == 'C3')){
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
629
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,595
Excel Vers. ve Dili
Pro Plus 2021
3 nolu mesajdaki değişikliği yapmamışsınız ki çalışsın. 4 nolu linkteki dosyada değiştirdim.
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
629
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
veyselemre,
Teşekkür ederim. Kodlarda bazı değişiklikler yaptım, çalıştı.
 
Üst