klop01
Altın Üye
- Katılım
- 19 Aralık 2016
- Mesajlar
- 657
- 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:
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.)
C3 için olan bölüm (Bu bölüm doğru çalışıyor.)
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.
}
}
}
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.
}
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.
}