Radene i A1:C10 skal markeres hvis A er lik teksten i D1
Betinget formatering
Marker område: A1:C10 Den tilpassede formelen er: =$A1=INDIRECT("D1")
Hans Kristian Røed
Skjuler 0-verdier i tabell med vekslende farger
Merk cellene
Format -> Tall -> Flere formater -> Tilpasset tallformat
0;-0;;@
Meldingsboks med Ja eller Nei. Ja kjører skript, Nei skriver til logg
function Bekreft() {
// Display a dialog box with a message and "Yes" and "No" buttons. The user can also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Melding',
ui.ButtonSet.YES_NO);
// Process the user's response.
if (response == ui.Button.YES) {
KjørSkript();
} else {
Logger.log('Valgte nei');
}
}
Bruke 2 stk datavalideringslister i Google Sheets, der liste nr 2 velges ut ifra hva som blir valgt i liste nr 1
function onEdit(e) {
//SpreadsheetApp.getActive()
var sh = e.source.getActiveSheet(),
allValues, list,
/* easy to change' variables */
sheet = 'NavnPåArk',
sheetWithLists = 'NavnPåArkMedLister',
rangeWithLists = 'C1:G10', //Område med lister, der første rad er overskriftene (liste 1)
colValidation = 2, //1=A, 2=B... Kolonnen med første liste
secondValidationOffset = 1; //forskyvningskolonner mot høyre til neste kolonne med lste
/*check conditions*/
if (sh.getName() !== sheet || e.range.columnStart !== colValidation || e.range.rowStart < 2 || typeof e.value == 'object') return;
/*get all values from the sheet with the lists (cached after the first run)*/
allValues = getFromCache_(sheetWithLists, rangeWithLists)
/*get the correct list(column) and remove the header*/
list = allValues.map(function (v, i) {
return v[allValues[0].indexOf(e.value)]
}).splice(1);
/*set the validation in offset column*/
e.range.offset(0, secondValidationOffset)
.setDataValidation(SpreadsheetApp.newDataValidation()
.requireValueInList(list)
.build());
}
function getFromCache_(sheetName, range) {
var key = 'DE_' + sheetName,
c = CacheService.getPublicCache(),
d,
t = c.get(key);
if (t) {
d = JSON.parse(t);
} else {
d = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(sheetName)
.getDataRange()
.getValues();
c.put(key, JSON.stringify(d));
}
return d;
}
Etter åpning av en Google Sheets-arbeidsbok, så settes aktiv celle i neste ledige rad i et valgt ark
function onOpen() {
var sheet = SpreadsheetApp.getActive()
.getSheetByName('NavnPåArk'),
lr;
var val = sheet.getRange('C:C') // Kolonne for sjekk etter neste ledig
.getValues();
for (var i = 0, vLen = val.length; i < vLen; i++) {
if (!val[i][0] && i > 2) {
lr = i + 1;
break;
}
}
sheet.setActiveRange(sheet.getRange('C' + lr)) //Ønsket kolonne for celle skal bli aktiv
}