Mein erstes Script programmieren mit Google Tabellen
Das programmieren von Scripten kann wirklich richtig sĂŒchtig machen. Ich zeige Euch hier mein erstes Script welches ich in Google Tabellen ĂŒber den Script-Editor erstellt habe.
Ich habe im Laufe der Zeit noch sehr viel mehr Tutorials ĂŒber die Google Script Programmierung gemacht.
FĂŒr alle die nach Tutorials suchen könnte diese Seite sehr interessant sein:
Ăbersichts-Liste der GOOGLE Tabellen Script Tutorials
ZusÀtzlich gibt es noch eine kleine Sammlung von Google Scripten oder Snippets die man nutzen könnte:
Google Tabellen Script Programmierung / Snippets
Dieses Tutorial ist auf eine Anfrage entstanden wo ich gefragt wurde ob es nicht möglich ist automatisch eine Zeile aus einem anderen Tabellenblatt zu kopieren. Das ganze ist dann ein wenig interessanter geworden weil ich auch gleichzeitig die Suche ĂŒber einen SVerweis mit eingebaut habe. Ihr könnt also einfach einen Artikelnamen eingeben und ĂŒber die Suche mit dem SVerweis werden aus dem anderen Tabellenblatt die Daten gesucht und die vollstĂ€ndigen Daten automatisch angezeigt. Mit einem Button welches das Script aufruft werden die Daten dann im aktuellen Tabellblatt hinzugefĂŒgt. Wie das alles Funktioniert und wie Ihr das Script in Eure Tabelle ĂŒber den Script-Editor einfĂŒgen könnt zeige ich Euch in dem Video-Tutorial welches Ihr ganz unten findet.
Nachfolgend ist die Funktion die Ihr einfach im Script – Editor hineinkopieren mĂŒsst.
Hier mein erstes Script zum Kopieren
Ich habe die Zuweisungen etwas angepasst, da mir als AnfĂ€nger ein kleiner Fehler im Script unterlaufen ist (getCell wurde entfernt). Danke fĂŒr den Hinweis Michael đ
Heute wĂŒrde ich das vermutlich sowieso noch etwas anders programmieren aber fĂŒr das erste Mal finde ich das schon ganz ok.
// Funktion datenKopieren, die ĂŒber den Button aufgerufen wird function datenKopieren(){ // Zuweisung des aktiven Tabellendokuments in die Variable ss var ss = SpreadsheetApp.getActiveSpreadsheet(); // Zuweisung des Tabellenblatts mit dem Namen "Eingabebereich" in die Variable sheet var sheet=ss.getSheetByName("Eingabebereich"); // Zuweisung der einzelnen Zellenbereiche in die entsprechenden Variablen // Hier wird der Zellinhalt der links stehenden Variablen zugewiesen // Zuweisung fĂŒr die Menge var menge = sheet.getRange(4,1); // Zuweisung fĂŒr die Artikel-Nummer var nummer = sheet.getRange(4,2); // Zuweisung fĂŒr den Namen var name = sheet.getRange(4,3); // Zuweisung fĂŒr den Einzelpreis var einzelpreis = sheet.getRange(4,4); // Zuweisung fĂŒr den berechneten Gesamtpreis var gesamtpreis = sheet.getRange(4,5); // AnhĂ€ngen der Daten in die letzte Zeile mit den entsprechenden Werten sheet.appendRow([menge.getValue(),nummer.getValue(),name.getValue(),einzelpreis.getValue(),gesamtpreis.getValue()]); }
Die Benutzung von diesem Script geschieht natĂŒrlich wie immer auf eigene Gefahr.
Ein interessanter Tipp
Um noch sehr viel mehr ĂŒber die Script – Programmierung in GOOGLE TABELLEN zu lernen könnt Ihr auch mal versuchen ein paar Makros zu erstellen. Ihr könnt Euch diese Makros nĂ€mlich spĂ€ter auch im Script – Editor anschauen und sehen wie die einzelnen Funktionen heiĂen die Ihr bei der Makroaufzeichnung verwendet habt.
Ein Tutorial fĂŒr die Erstellung von einem Makro findet Ihr hier:
Ein Makro mit Google Tabellen aufzeichnen
Euch gefÀllt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] đ
Funktionen lassen sich spielend einfach ĂŒber den Script – Editor schreiben. Damit lassen sich noch interessantere Projekte erstellen, die entweder sehr schwer oder gar nicht ĂŒber das normale Tabellen-Dokument oder Tabellen-Blatt möglich sind. Es stehen damit eine Menge mehr Möglichkeiten offen und man kann seiner KreativitĂ€t freien Lauf lassen
Das Tutorial welches Euch zeigt wie das gemacht wird, könnt Ihr Euch natĂŒrlich auch gerne hier oder ĂŒber YouTube ansehen.
Viel SpaĂ dabei đ
23 Comments
Zu meiner ersten Mail als ErgÀnzung:
Trotz richtigem Passwort und E-Mail Adresse erfolgt (wie in einer Endlosschleife) nach der Anmeldung der folgende Kommentar:
Diese App wurde nicht ĂŒberprĂŒft
Diese App wurde noch nicht von Google ĂŒberprĂŒft. Sie sollten nur fortfahren, wenn Sie den Entwickler als vertrauenswĂŒrdig ansehen.
Sage ich ja, erfolgt der Anmeldeprozess erfent, danach wieder die obige Meldung usw. und so fort…
Normalerweise sollte das ohne Probleme funktionieren.
– Projekt im Editor speichern
– AnschlieĂend die entsprechende Funktion auswĂ€hlen
– Auf das Debuggen Symbol klicken
– Berechtigung ansehen auswĂ€hlen
– Richtiges Konto auswĂ€hlen
– Erweitert
– Ganz unten im Bereich Unbenanntes Projekt öffnen (unsicher) klicken (natĂŒrlich immer auf eigene Verantwortung)
– Zulassen anklicken (vorausgesetzt man möchte den Zugriff gestatten)
Fertig. So funktioniert es zumindest bei mir und habe ich soeben nochmal getestet.
Hallo,
nettes HowTo, ich habe ein paar Fragen zum Programmieren.
Wie bekomme ich es denn hin das ich ein DropDown MenĂŒ erstelle und die URLS mit "importUrl" versehe, der Hintergrund soll sein das mir bei der Auswahl jedesmahl eine andere Tabelle einer Webseite geladen wird.
Und dann wĂŒrde mich auch mal Intressieren wie man Felder "Zellen" mit Namen so formatiert das die Zeilen Zuweisung oder Berechnung von alleine lĂ€uft.
WĂŒrde mich ĂŒber ein Tipps freuen
Mit dem Import habe ich mich zeitlich bedingt noch nicht weiter beschÀftigt.
Vielleicht hilft Dir das hier weiter:
https://developers.google.com/apps-script/reference/url-fetch/http-response#getContent()
Mit der Zuweisung weiĂ ich jetzt nicht genau was Du meinst. Eine Automatisierung kannst Du aber ĂŒber sogenannte Events oder Buttons realisieren (vorausgesetzt das Du das Script dafĂŒr fertig hast).
Hier ein Beispiel:
https://toptorials.com/daten-sortieren-beim-oeffnen-google-tabellen-spreadsheets-script/
Ansonsten gibt es wie gesagt den Button (wie in dem Tutorial was Du gesehen hast) oder auch onEdit, falls Du einen Eintrag in einer Zelle verÀndert hast.
Hallo, ich bin AnfĂ€nger in dieser Sprache und stolpere ĂŒber ein scheinbar einfaches Problem:
In einem Spreadsheet-Bereich gibt es markierte rote (zusammenhÀngende) Zellen, in denen sich schriftliche Eintragungen befinden.
Dieses Sheet soll als Exceldatei in einer Email versendet werden. Vorher muss die Schrift sichtbar (=weiĂ) gemacht werden und nach dem Absenden wieder rot wie der Hintergrund, also unsichtbar.
Mein Script ist:
[CODE]
function getGoogleSpreadsheetAsExcel()
{
// macht die Schriftfarbe im Bereich sichtbar
var range = SpreadsheetApp.getActiveSheet().getRange("B5:BZ1000");
var color="#ffffff";
range.setFontColor(color);
//sendet die Email
var ss = SpreadsheetApp.getActive();
var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx";
var params =
{
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions: true
};
var blob = UrlFetchApp.fetch(url, params).getBlob();
var now = new Date();
blob.setName(ss.getName() + " " + now +".xlsx");
MailApp.sendEmail("hstauche@versanet.de", "Aktuelles Google Sheet als Excel-Datei", "Die Excel-Datei befindet sich im Anhang dieser Email.", {attachments: [blob]});
// macht vor dem Beenden der Funktion den Text unsichtbar
var range = SpreadsheetApp.getActiveSheet().getRange("B5:BZ1000");
var color="#ff0000";
range.setFontColor(color);
}
[/CODE]
WĂ€hrend das Senden der Mail und der letzte Abschnitt (unsichtbar machen) tadellos ausgefĂŒhrt wird, funktioniert der erste nicht (sichtbar machen). Da ich völlig analog geschrieben habe, habe ich keine ErklĂ€rung.
Danke im Voraus fĂŒr eine AufklĂ€rung und FG Helmut
Hallo Helmut, hast Du zum Testen mal versucht statt weiĂ die Farbe Schwarz zu benutzen.
Die Formeln an sich sind ja korrekt und wenn man die Bereiche einzeln benutzt funktioniert das auch ohne Probleme. Der erste Teil macht die Schrift weiĂ, was natĂŒrlich bei einem roten Hintergrund auch zu sehen ist. Da aber anschlieĂend direkt wieder der Text auf rot gesetzt wird sieht man das sichtbar machen nicht. Wenn in Excel selbst die Hintergrundfarbe weiĂ ist, dann sieht man den Text ebenfalls nicht. Ich weiĂ jetzt nicht in wie weit die Tabelle mit den Formatierungen ĂŒbernommen wurde. Das mit der Textfarbe wĂ€re erst einmal ein Versuch wert (sichtbare Farbe z.B. blau oder schwarz).
Wenn Du einige Tutorials von mir gesehen hast, weiĂt Du ja dass ich auch nur Hobbyprogrammierer bin und selbst noch einiges zu lernen habe đ
Hallo Chris, danke fĂŒr deine schnelle Reaktion. Leider ist es völlig egal, welche Schriftfarbe man zum Sichtbarmachen nimmt, Alle anderen Inhalte und Formatierungen des Sheets werden tadellos in Excel ĂŒbernommen. Nach meiner Logik mĂŒssten die Scriptzeilen nacheinander ausgefĂŒhrt werden, also das Versenden als Exceldatei sollte erst nach dem WeiĂ-Machen der Schrift ausgefĂŒhrt werden. Ist hier vielleicht ein Denkfehler?
WĂ€re es denkbar, dass du oder ein(e) ander(e) aus dem Forum mein Script mal ausprobiert.
a. ein eigenes Google Spreadsheet öffnen
b. im Bereich B5:BZ1000 einigen zusammenhÀngenden Zellen einen roten Hintergrund geben ("#ff0000").
c. in in eine beliebige Zelle des roten Bereichs etwas mit weiĂer Schrift schreiben
d. die Schriftfarbe danach ebenfalls rot ("#ff0000") machen, so dass man die Schrift nicht mehr sieht
e. mein Script testen (vorher zum Ausprobieren aber meine Mailadresse durch eure eigene ersetzen)
Es soll Folgendes passieren:
Teil 1. Die rote Schrift soll weiĂ werden.
Teil 2. Das Sheet soll als Excel-Datei an eure Mailadresse versendet werden, und zwar mit weiĂer Schrift.
Teil 3. Die Schrift im Google-Sheet soll nach dem Versenden rot – also unsichtbar – sein.
Die Teile 2. und 3 funktionieren, Teil 1. nicht, d.h. im Excel-File ist die Schrift nur dann weiĂ, wenn man den Punkt d. (oben) weglĂ€sst.
Werden die ersten drei Zeilen nicht ausgefĂŒhrt? Wenn ja, warum? Oder???.
Danke, eine Hilfe wÀre wirklich wichtig. Ich hab hier niemanden, der sich damit auskennt.
FG Helmut
Versuche mal den folgenden Befehl nach dem Du die Textfarbe in weià geÀndert hast.
Das sollte das Problem lösen:
SpreadsheetApp.flush();
Viele GrĂŒĂe
Chris
Danke Chris, darauf wÀre ich als Einsteiger nie gekommen.
Obwohl dies eine ehrenamtliche Auftragsarbeit war (umfangreiches Ausleihsystem, der gröĂte Teil in PHP), habe ich doch Feuer gefangen und werde – wenn sinnvoll – zukĂŒnftige Ideen mit Google Apps Script realisieren.
Ich bewundere die VielfĂ€ltigkeit deiner Arbeiten. Vor allem auch die Tutorials zu OpenOffice werden mir fĂŒr meine beiden PC-Kurse mit Senioren Anregungen liefern und den Teilnehmer*innen eine gute Möglichkeit fĂŒr die Ăbungen zuhause bieten.
Viele GrĂŒĂe
Helmut
PS Evtl. könntest du fĂŒr deine Kommentare – wie in Foren ĂŒblich – eine extra Formatierung fĂŒr Code einbauen.
Super das es jetzt geklappt hat đ
Ich danke Dir auch fĂŒr die vielen Komplimente.
Die Google Tabellen Script-Programmierung kann wirklich sehr viel SpaĂ machen. Man muss wirklich aufpassen dass man nicht sĂŒchtig wird đ
Da Du Dich aber mit PHP auskennst und bestimmt auch mit MySQL wirst Du viele Sachen eher damit machen. Gerade wenn es um sehr groĂe Datenmengen geht wĂŒrde ich vermutlich auch darauf zugreifen. Vor allem weil man da alles komplett erstellen kann (Backend, Frontend) und es auch verdammt schnell ist. Der Aufwand ist aber um einiges gröĂer đ
Und so ein Einsteiger bist Du in meinen Augen gar nicht, denn die Funktion und Ideen die Du in dem Script nutzt ist fĂŒr mich schon als fortgeschritten zu sehen.
Das mit der Code Formatierung ist nicht ganz so leicht. Ich habe schon einige Plugins gesucht aber nichts passendes gefunden. Die guten Plugins halte ich teilweise fĂŒr etwas fragwĂŒrdig was den Datenschutz angeht. Ich muss mal schauen ob ich das selbst umprogrammieren kann. Das wird aber auch etwas dauern.
Ich wĂŒrde mich natĂŒrlich auf jeden Fall freuen wenn meine Seite weiter empfohlen wird đ
Viele GrĂŒĂe
Chris
Hallo! vielen Dank fĂŒr die Super ErklĂ€rungen! Ich wĂŒrde gerne noch die ausgeworfenen EintrĂ€ge am Ende zusammen rechnen.
Habe es versucht mit dem Befehl =Summe aber der klappt nicht.
Ich nehme an der Script gehört umgeschrieben damit in einer definierten Zeile ausgeworfen wird und nicht immer auf der letzten Zeile.
könntest du mir da weiterhelfen?
mfg alex
Wo hast Du denn versucht die Funktion SUMME anzuwenden. Direkt im Script oder hast Du das in der Tabelle selbst benutzt?
Ăber die Funktion sollte es eigentlich innerhalb der Tabelle klappen. Im Script ist das je nachdem wie Du das alles aufgebaut hast etwas komplizierter, weil erst am Ende aller Aktionen der Bereich mit den Werten eingelesen werden mĂŒsste um diese dann anschlieĂend zu summieren. Es gibt dafĂŒr verschiedene Vorgehensweisen.
Viele GrĂŒĂe
Chris
Moin Chris,
ich habe mit einem GoogleSheet noch Probleme. Ich habe per Makro ein Script hinterlegt, dass aus einem Tabellenblatt (A) einen Bereich ĂŒber 10 Spalten auf ein Tabellenblatt (B) ĂŒbertrĂ€gt und danach die Inhalte im Tabellenblatt (A) löschen soll. Nun ĂŒbertrĂ€gt er aber teilweise nicht den gesamten Bereich sondern lĂ€sst partiell einige Stellen aus. Dies geschieht scheinbar willkĂŒrlich. Können wir diesbezĂŒglich in Kontakt treten?
Hast Du denn anstelle des aufgezeichneten Makros mal ein normales Script versucht?
Das wÀre dann in etwa so etwas hier:
https://toptorials.com/zellenbereich-kopieren-google-tabellen-script/
https://toptorials.com/zellen-in-andere-tabellen-kopieren-google-tabellen-script-snippet/
Warum das jetzt bei dem Makro nicht funktioniert kann ich nicht sagen. Normalerweise sollte das Script ja funktionieren was als Makro aufgezeichnet wird.
Solche Zeilen sehen meiner Meinung nach problemlos aus:
spreadsheet.getRange('10:10').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
Aus zeitlichen GrĂŒnden kann ich leider keinen persönlichen Support geben.
Ich bitte um Dein VerstÀndnis.
Viele GrĂŒĂe
Chris
Vielen Dank fĂŒr die schnelle RĂŒckmeldung. Mir ist bewusst, dass nicht auf jedes Problem individuell eingegangen werden kann. Ich habe heute nochmal das Makro aufgenommen und minimal verĂ€ndert. Es schein problemlos zu laufen. Im Makro scheint er sich aufzuhĂ€ngen wenn man sagt "fĂŒge 10 Zeilen ĂŒber einem Bereich ein" Ich hab dies nun 10x einzeln gemacht. Weil ich leider nicht weiĂ, ob ich in dem Script vorgeben kann, dass er nur Zeilen wegschiebt, wo die Spalte A Daten "" enthĂ€lt.
Falls du Lust hast, kannst du gerne drĂŒber schauen. Erwarten tue ich es nicht. Konnte mir schon jede Menge selbst aneignen hier. Vielen Dank dafĂŒr!
function Archivierung() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Archiv'), true);
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('1:1').activate();
spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
spreadsheet.getRange('2:11').activate();
spreadsheet.getActiveRangeList().setBackground('#ffffff')
.setFontWeight(null);
spreadsheet.getRange('D4').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Tabellenblatt1'), true);
spreadsheet.getRange('A5:N14').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Archiv'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.getRange('Tabellenblatt1!A5:N14').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.getRange('A2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Tabellenblatt1'), true);
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('K19').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('J19').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('A5').activate();
};
Hallo, Echt super aufgearbeitet. Was ich jetzt nicht ganz verstehe ist wie ich das script so umĂ€ndere damit er das gleich fĂŒr alle Zeilen die in der Tabelle sind macht und somit gleich 50 oder mehr Termine erstellt. wĂ€re super wenn du mir da weiterhelfen könntest.
Danke
Lg Paul
Hallo,
Ich weiĂ nicht ob ich in diesem Thread richtig bin.
Hier meine Frage:
Ich möchte beim betÀtigen eines KÀstchens in einer anderen Spalte (gleiche Zeile) einen Zeitstempel setzen.
function onEdit(){
//aktuelles Tabellenblatt auswÀhlen
var ss = SpreadsheetApp.getActiveSheet()
//Spalte in der der Zeitstempel eingetragen weden soll
var zeitStempelSpalte=8;
// Zeile ab der der Zeitstempel eingetragen weden soll
var zeitStempelZeile=2;
//Ermittlung der aktiven Zelle und auslesen der Zeile
var AbfrageZelle = ss.getActiveCell();
var aktuelleZeile = AbfrageZelle.getRow();
//Definition und Formatierung des Zeitstempels
var zeitStempel = new Date();
var zeitStempelFormat="dd.mm.yyyy";
//setzen des Zeitstempels wenn die Bedingung erfĂŒllt ist
if(AbfrageZelle.isChecked()){
ss.getRange(aktuelleZeile, zeitStempelSpalte).setValue(zeitStempel).setNumberFormat(zeitStempelFormat);
}
else
ss.getRange(aktuelleZeile, zeitStempelSpalte).setValue("");
}
Dieser Code löscht mir allerdings die Ăberschrift in Zeile 1, Spalte 8
Wie muss ich den Code Ă€ndern, dass die Ăberschrift nicht entfernt wird?
Danke im Vorraus
Hallo,
nutze ich Google Tabellen auf meinem Windows-Computer wird das Makro (per Button Klick) ausgefĂŒhrt.
Nutze ich Google Tabellen auf meinem Android Tablet, funktioniert der Klick auf den Button nicht oder wird scheinbar nicht als solcher registriert. Das Makro wird nicht ausgefĂŒhrt.
Hallo Chris!
Super Anleitung – hab mir daraus, in Kombination mit dem ToDo-Skript, auch was sehr nettes gebastelt aber….
was mir jetzt fehlt und ich nach gut 2 Std. suchen im Web leider auch nicht finden konnte ist, wie ich eine Checkbox kopieren kann mit diesem Skriptaufbau.
Konkret:
In Zelle 4,4, die mit den anderen Zellen in Zeile 4 kopiert werden soll wie im vorliegenden Beispiel, befindet sich eine Checkbox. (unchecked)
Bei AusfĂŒhrung des Skripts wie angegeben wird in die Zielzelle am Ende der Liste nur "FALSE" ausgegeben anstatt wieder eine Checkbox und man muss manuell nachbessern.
Diesen Vorgang hĂ€tte ich aber natĂŒrlich gern im Skript integriert.
Hast du eine Lösung dazu?
Danke und bG
Ist es möglich das AnhĂ€ngen der Daten in einer bestimmten Zeile zu machen oder geht dies nur durch "appendRow"? Und welchen Befehl mĂŒsste man dann verwenden um eine bestimmte Zeile anzusteuern?
Hallo Chris,
ich habe das Problem das das Script zu lange lĂ€uft, also die ganze Zeit ĂŒber solange die Maus noch gedrĂŒckt ist.
Es sollte eigentlich so sein das das Script mit dem Mausklick nur 1 mal durchlÀuft und nicht stÀndig.
Es soll also ein Wert um eins erhöht werden. Bei mir meckert er das es zu einem Zirkelbezug kommt.
Hallo, bin auf der Suche wie genau der Befehl lautet um eine andere function aus einer function auf zurufen. habe quasi eine function geschrieben mit der ich einen Kalender synchronisiere, diese möchte ich mit verschiedenen Möglichkeiten aufrufen wie trigger, SideMenu (das funtioniert auch alles und eben aus einer function die Eingaben prĂŒft und dann in einer AbfrageBox frĂ€gt ob der Sync ausgefĂŒhrt werden soll, dann muss in dieser function die function zum Synchronisieren aufgerufen werden. Ich suche jetzt schon eine Stunde im Netz und kann einfach den genauen Aufruf nicht finden. Bitte um Hilfe. Danke
Hallo Chris,
erstmal vielen dank fĂŒr deine ganz erklĂ€rungen so wie Videos.
ist es möglich von Tabellenblatt1 einen bestimmten bereich zu kopieren / verschieben . wenn alle Daten dort eingetragen sind?
die dann auf Tabellenblatt2 eingefĂŒgt werden, aber nur die werte ohne Datenvalendierung ohne hintergrundfarben ?
und wenn das erfolgreich war die daten auf tabellenblatt2 zu löschen ?
und das bei neuer eingabe der Daten dann auf Tatenblatt2 hinten dran gehangen werden und nicht das die alten ĂŒberschrieben werden ?