Funktion zeitlich gesteuert ausführen
In diesem Tutorial "Funktion zeitlich gesteuert ausführen" zeige ich Euch wie Ihr Eurer Google Tabellen Script zeitlich gesteuert ausführen könnt. In dem Beispiel wird das ganze minütlich ausgeführt. Ihr könnt über den Scripteditor Trigger setzen mit denen Ihr Funktionen aufrufen könnt. Hier gibt es mehrere Möglichkeiten. Eine Möglichkeit ist die Ausführung der Funktion oder des Scripts über die Zeit. Hier könnt Ihr von minütlich, stündlich, wöchentlich oder sogar benutzerdefinierte Zeiten angeben.
Wer jetzt das erste mal ein Google Tabellen Script programmiert sollte sich zuerst dieses Tutorial hier anschauen: Mein erstes Google Tabellen Script programmieren
Dieses Tutorial ist extra für Anfänger die sich mit dem Tabellenkalkulationsprogramm GOOGLE TABELLEN / SPREADSHEETS noch nicht so viel beschäftigt haben. Es zeigt die Funktionen und Möglichkeiten Schritt für Schritt.
Das Script zum Kopieren
function zeitStempelPerTriggerSetzen(){ // Auf das aktive Tabellenbatt zugreifen und der Variablen tabellenblatt zuweisen var tabellenblatt=SpreadsheetApp.getActiveSheet(); // Aktuelles Datum als neues Objekt mit new erzeugen var aktuellerZeitpunkt=new Date(); // Das Format für die Ausgabe festlegen. Hier könnt Ihr Eure Änderungen vornehmen var zeitStempelFormat="dd.mm.yyyy hh:mm:ss"; // In die letzte Zeile in Spalte A den Zeitstempel setzen tabellenblatt.getRange(tabellenblatt.getLastRow()+1,1).setValue(aktuellerZeitpunkt).setNumberFormat(zeitStempelFormat); }
Das Video-Tutorial "Funktion zeitlich gesteuert ausführen (Google Tabellen) Script"
10 Comments
Hallo
habe da mal eine frage.
Ich habe eine Tabelle wo mehre Benutzer Zugriff drauf haben (Bearbeitungsrechte)
Nun möchte ich habe das der Tigger On open bei jedem ausgeführt wird.
das seht dann so aus
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menubuttons = [{name: "Leitstellenblatt leeren", functionName: "clearRange"},{name: "Notizen leeren", functionName: "clearNotes"},{name: "Server-Wechsel (Random)", functionName: "changeServer"},{name: "Statistik-Formeln reparieren", functionName: "repairFormeln"},{name: "Ride-Along Box sortieren", functionName: "sortRideAlong"}];
var menubuttons2 = [{name: "Dienstbelegung sortieren", functionName: "showDialog"},{name: "Beamtenliste generieren (Forum)", functionName: "generateBeamtenliste"}];
ss.addMenu("Leitstelle – Funktionen", menubuttons);
ss.addMenu("Dienstbelegung – Funktionen", menubuttons2);
var htmlApp = HtmlService
.createHtmlOutput(")
.setTitle('Message of the day')
.setWidth(570)
.setHeight(430);
SpreadsheetApp.getActiveSpreadsheet().show(htmlApp);
}
er soll mir eben dies html Seite bei jedem auf machen sobald er das Tabellenblatt öffnet.
Also bei meinem Benutzer funktioniert dies schon mal, Aber irgendwie bei denn anderen nicht.
Hast Du das denn schon einmal mit einen Trigger versucht. Du kannst im Script-Editor einen Trigger auf die Funktion onOpen setzen.
Ich schreibe die meisten Scripte für mich selbst, deshalb habe ich die Ausführung der Scripte noch nicht mit anderen Accounts getestet. Da werde ich, was die Berechtigungen angeht, noch etwas Nachholbedarf haben.
Dafür gibt es ja einige Funktionen.
Hallo
Ja Trigger habe ich eingestellt. Nur leider kommt das HTML Fenster nicht bei denn anderen Benutzer.
Was Du noch probieren könntest wäre die Zeile nach oben zu setzen oder mal die Funktion Flush zu benutzen.
Aber ich vermute das wird auch nicht helfen. Da bin ich überfragt, weil ich mich damit noch nicht weiter auseinander gesetzt habe. Du weißt ja, ich bin auch nur Hobby-Programmierer.
Ich habe zwar auch gerade noch ein paar Sachen getestet aber bekomme das momentan auch nicht hin. Hier habe ich einfach mal den Internetexplorer benutzt um über die Freigabe die Tabelle aufzurufen. Die Tabelle wird zwar angezeigt aber auch hier wird der HTML Bereich nicht ausgegeben.
Ja irgendwie komisch.
Ich habe das jetzt erst mal so gelöst
function Trigger() {
ScriptApp.newTrigger('onOpen')
.forSpreadsheet(SpreadsheetApp.getActive())
.onOpen()
.create();
Das die eben im Menü ein Punkt haben wo sie denn Trigger erstellen könne. Muss mich da mal schlau machen.
Aber trotzdem danke =) und top Videos
Schade natürlich dass ich nicht helfen konnte. Zeitlich komme ich aber auch kaum noch dazu mich noch weiter einzuarbeiten obwohl es so viel Spaß macht. Ich arbeite jetzt viel an Animationen die fast 10 mal mehr frequentiert werden.
Danke Dir übrigens für das nette Kompliment.
Falls Du eine Lösung gefunden hast, kannst Du diese hier gerne in die Kommentare veröffentlichen. Das wird sicher auch anderen weiter helfen.
Hey ich hab ne Frage,
Ich habe ein Script, welches eine neue Spalte im Spreadsheet einfügt bei onOpen.
Jetzt möchte ich aber, dass es nicht beim Öffnen sondern an jedem Tag bei z.B. 00:01 eine neue Zeile einfügt.
Ist das möglich? Kannst du mir da weiterhelfen?
Danke im voraus,
Lg Sebastian
Hallo Sebastian, so etwas kannst Du mit einem zeitlich gesteuerten Trigger machen. Wie ich gerade sehe bist Du ja sogar genau in diesem Beitrag wo das steht. In dem Video zeige ich wie das funktioniert. Die Zeiten die Du festlegen kannst sind nicht immer hundertprozentig. Es gibt immer minimale Abweichungen. Wie stark die Abweichungen sind musst Du testen. Es kann sich um wenige Sekunden aber eventuell auch Minuten handeln.
Viele Grüße
Chris
Hallo, ich möchte eine Aktion wenn die Zeit in einer Zelle gleich aktuelle Zeit ist.
Zelle A1: 01.06.2020 19:30:00
Wenn diese Zeit kommt, soll eine Aktion ausgeführt werden. z.B. auf Zelle B1 schreiben, "Zeit ist rum!"
Hallo
Hätte da mal eine Frage, wenn ich bei eine Tabelle ein Häkchen setze, würde es gehen, dass er die Tabelle automatisch in ein PDF umwandelt und speichert