Wie kann ich in einer Google-Tabelle das momentane Datum als Feld setzen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Hallo Pascal,

ich würde das über ein Makro organisieren.

function onEdit() { // wenn tabelle editiert wird

var sheet = SpreadsheetApp.getActiveSheet(); // sheet ist name der aktiven tabelle

var columnNumberToWatch = 1; // spalte, deren bearbeitung folgen haben soll, hier A

var dateColumn = 7; // spalte, in der das Datum eingetragen wird, hier G

var range = sheet.getActiveCell(); // range auf aktive Zelle legen

var roww = range.getRow(); // aktive reihe merken

if (range.getColumn() == columnNumberToWatch) { // Wenn die aktive Spalte die zu überwachende ist

var targetCell = sheet.getRange(range.getRow(), dateColumn); // Adresse der Datums-Zelle merken

targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT+1", "YYYY-MM-dd")); // dort Datum eintragen
} // Ende des If


} // Ende der Funktion.


Das ist wahrscheinlich gewurschtelt, ich bin eigentlich keine, die sowas kann und habe erst vor einiger Zeit angefangen, mich überhaupt mal Scripten zu beschäftigen, aber es sollte funktionieren. Wahrscheinlich kann man das Script eleganter lösen, ich aber nicht.

Bevor es geht musst Du irgendwelche Berechtiungen setzen, indem Du im Scripteditor auf das "Play"-Symbol klickst und dann die Autorisierung bestätigst.

LG

Anne


pxscl 
Fragesteller
 11.04.2018, 19:35

Wäre es möglich, dass man nur in ein bestimmtes Tabellenblatt mit dem Skript machen kann? Weil bei den anderen Tabellenblättern soll es nicht so sein.

0
AnneHuh  11.04.2018, 19:38
@pxscl

Jup:

Dann schreibst Du hinter

var sheet = SpreadsheetApp.getActiveSheet();

noch die Zeile

if (sheet == "Name_des_Tabellenblattes") {

unnd machst ganz am Ende des Scripts noch eine weitere Klammer zu.

1
pxscl 
Fragesteller
 11.04.2018, 19:45
@AnneHuh

Hey,

stimmt es so? Weil wenn ich es so mache funktioniert es nicht. Es funktioniert nicht. Der Name ist auch 100% der, der in der Google-Tabelle steht.

function onEdit() { // wenn tabelle editiert wird

var sheet = SpreadsheetApp.getActiveSheet(); // sheet ist name der aktiven tabelle
  
if (sheet == "Team-Besprechungsthemen") {

var columnNumberToWatch = 1; // spalte, deren bearbeitung folgen haben soll, hier A

var dateColumn = 2; // spalte, in der das Datum eingetragen wird, hier G

var range = sheet.getActiveCell(); // range auf aktive Zelle legen

var roww = range.getRow(); // aktive reihe merken

if (range.getColumn() == columnNumberToWatch) { // Wenn die aktive Spalte die zu überwachende ist

var targetCell = sheet.getRange(range.getRow(), dateColumn); // Adresse der Datums-Zelle merken

targetCell.setValue("" + Utilities.formatDate(new Date(), "GMT+1", "dd.mm.yyyy")); // dort Datum eintragen
} // Ende des If
  
} // Ende der Abfrage  
  
} // Ende der Funktion.

0
pxscl 
Fragesteller
 11.04.2018, 19:56
@pxscl

-- Gelöst :) Vielen Dank für die Hilfe.

0
AnneHuh  11.04.2018, 20:02
@pxscl

My Bad. Es muss natürlich heißen:

if (sheet.getName() == "Team-Besprechungsthemen") {

Aber Du hast es ja schon hinbekommen. Gerne!

0