Untitled
unknown
plain_text
10 months ago
2.5 kB
19
Indexable
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('יומן חריגים')
.addItem('שכפל שורה', 'duplicateSelectedRow')
.addToUi();
}
function onEdit(e) {
const sheetName = 'יומן חריגים';
const sh = e.range.getSheet();
if (sh.getName() !== sheetName) return;
const row = e.range.getRow();
if (row < 2) return; // לא נוגעים בכותרות
const tsCol = 1; // A
const nameCol = 2; // B
const statusCol = 8; // H
const closeCol = 9; // I
const tsCell = sh.getRange(row, tsCol);
const statusCell= sh.getRange(row, statusCol);
const closeCell = sh.getRange(row, closeCol);
// חותמת תאריך+שעה אם הזינו משהו ב-B..H
if (e.range.getColumn() >= nameCol && e.range.getColumn() <= statusCol) {
if (!tsCell.getValue()) {
tsCell.setValue(new Date());
}
}
// אם כל B..H ריקים → נקה תאריכים וצבע
const rowValues = sh.getRange(row, nameCol, 1, statusCol - nameCol + 1).getValues()[0];
if (rowValues.every(v => !v)) {
tsCell.clearContent();
closeCell.clearContent();
sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground(null);
return;
}
// טיפול בסטטוס
const statusVal = statusCell.getValue();
if (statusVal === 'טופל') {
if (!closeCell.getValue()) {
closeCell.setValue(new Date());
}
// צביעת כל השורה בירוק בהיר
sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground('#c6efce');
} else {
closeCell.clearContent();
// החזרת צבע רקע רגיל
sh.getRange(row, 1, 1, sh.getLastColumn()).setBackground(null);
}
}
function duplicateSelectedRow() {
const sheetName = 'יומן חריגים';
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
const range = sh.getActiveRange();
const row = range.getRow();
if (row < 2) return;
// קריאת הערכים מהשורה B..F
const values = sh.getRange(row, 2, 1, 5).getValues()[0]; // B..F
// הוספת שורה חדשה מתחת
sh.insertRowsAfter(row, 1);
const newRow = row + 1;
// כתיבה
sh.getRange(newRow, 1).setValue(new Date()); // A
sh.getRange(newRow, 2, 1, 5).setValues([values]); // B..F
sh.getRange(newRow, 7).clearContent(); // G
sh.getRange(newRow, 8).setValue('ממתין'); // H
sh.getRange(newRow, 9).clearContent(); // I
sh.getRange(newRow, 1, 1, sh.getLastColumn()).setBackground(null); // בלי צבע
}Editor is loading...
Leave a Comment