Eingabemaske aufrufen
Wie Ihr eine Eingabemaske aufrufen könnt zeige ich Euch hier in diesem Google Tabellen Script Tutorial. In diese sogenannte Dialogbox könnt Ihr dann etwas eintragen und anschlieĂend mit den Daten weiter arbeiten. In diesem Beispiel wird der einfach nur der Name abgefragt und anschlieĂend in einer Alarmbox ausgegeben. ZusĂ€tzlich wird der Name noch in die Zelle A1 geschrieben. Dadurch könnt Ihr dann auch gleich mal sehen wie das funktioniert. Vor allem fĂŒr diejenigen interessant die anschlieĂend mit den Daten weiter arbeiten möchten.
Der Aufruf der Eingabemaske  funktioniert ĂŒber das User Interface mit der Methode getUi.
Wer zum ersten Mal ein Script schreiben möchte, sollte sich das Video Tutorial: Mein erstes Google Tabellen Script anschauen.
Hier das Script zum Kopieren
function eingabeMaske() { var ui = SpreadsheetApp.getUi(); var antwort = ui.prompt( 'Wie ist Dein Name', 'Hier kannst Du Deinen Namen eingeben', ui.ButtonSet.OK_CANCEL); var deinName=antwort.getResponseText() if (deinName != ""){ SpreadsheetApp.getActiveSheet().getRange("A1").setValue(deinName); SpreadsheetApp.getUi().alert("Dein Name ist: " + deinName); } }
Zeilenumbruch
Wer einen Zeilenumbruch benötigt, der kann das mit \n realisieren.
Wenn man beispielsweise das Ergebnis (also den Namen) in der nÀchsten Zeile haben möchte kann das mit folgender CodeÀnderung machen:
SpreadsheetApp.getUi().alert("Dein Name ist:\n" + deinName);
ButtonSet – Buttons fĂŒr Eure Dialogbox
Die Funktion ButtonSet bietet einige Konstanten die man verwenden kann um Buttons anzuzeigen. In dem Beispielscript habe ich die Konstant OK_CANCEL verwendet aber es stehen noch andere zur VerfĂŒgung:
Konstante | Beschreibung |
---|---|
OK | Erzeugt einen OK Button |
OK_CANCEL | Erzeugt einen OK und ABBRECHEN Button |
YES_NO | Erzeugt einen JA und NEIN Button |
YES_NO_CANCEL | Erzeugt einen JA, NEIN und ABBRECHEN Button |
Euch gefÀllt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] đ
Das Video-Tutorial "Dialogbox aufrufen / Eingabemaske aufrufen (Google Tabellen Script)"
10 Comments
hallo,
zwei kleine Sachen muss ich mal los werden.
1. super was hier machst danke dafĂŒr hilft echt gut weiter mit deine ErklĂ€rungen.
2. kann man wenn man eine Dialog box mit ja nein Button erstell auswerten welcher Button gedrĂŒckt wurde ?
Bsp. willst du wirklich alles zurĂŒck setzten ?
JA Nein
wenn ja dann lösche alles
wenn nein dann Dialogbox einfach schlieĂen
danke schon mal das dir die zeit nimmst das zu lesen
Danke Dir erst einmal fĂŒr das nette Kompliment.
Was Deine Frage angeht, schau Dir mal hier in der Referenz das obere Script an:
https://developers.google.com/apps-script/reference/base/ui
Hier werden zwei Buttons erstellt und die Antwort und Buttons auch ausgewertet / verzweigt. Die Ergebnisse von der Auswertung des Scripts siehst Du im Protokoll. Das heiĂt, wenn Du die Funktion ausfĂŒhrst, dann kannst Du die Ergebnisse von diesem Script. Ăber "Ansicht" – > "Protokolle" im Script Editor auslesen. Hier in dem Beispiel werden die Ergebnisse nur geloggt. Du kannst in den IF / Else Verzweigungen natĂŒrlich noch eine Menge Funktionen einbauen.
Um das Script zu Testen brauchst Du das ganze nur in die Funktion "myFunction" rein kopieren, speichern und diese dann einfach nur ausfĂŒhren.
Hallo,
sehr gutes Video. Wie bekommt man es allerdings hin das die Dialogbox sich gleich beim Start der Datei öffnet ?
Vielen Dank im Voraus
vg timo
Damit Funktionen beim Ăffnen der Tabelle ausgefĂŒhrt werden kannst Du diese ĂŒber die Funktion onOpen() im Scripteditor aufrufen.
erstelle Dir einfach die Funktion:
function onOpen(){
DeinFunktionsAufruf();
}
Versuche mal ob das klappt đ
Viele GrĂŒĂe
Chris
Hey, vielen Dank du hast das super einfach erklÀrt.
Eine Frage hĂ€tte ich noch; ich hab einen sverweis in meinem Dokument und wĂŒrde gern eine Dialogbox haben, die nach Eingabe in die erste Dialogbox (beispielsweise 'dein Name') in einer zweiten Dialogbox den zugehörigen Wert ausgibt. Einfach damit es benutzerfreundlicher aussieht.
Danke schon mal fĂŒr deine Hilfe
Hey Lisa,
das sieht zwar benutzerfreundlicher aus aber ob das wirklich benutzerfreundlicher ist wĂŒrde ich erst einmal testen und spĂ€ter auch mal die Benutzer fragen. Das Problem ist, das Du ja mehrmals mit der Maus die Eingabemasken bestĂ€tigen musst (OK oder Abbrechen). Das sind zusĂ€tzliche Mausklicks die nicht nötig wĂ€ren. Aber das ist natĂŒrlich Geschmackssache.
Wenn Du das dennoch machen willst, kannst Du im unteren Teil der Funktion wo die if Abfrage steht ja einfach mal versuchen noch eine Eingabemaske, wie oben in der Funktion, einzutragen.
Das Ergebnis kommt dann ĂŒber getRange und getValue. Also getRange ist Deine Zelle wo das Ergebnis fĂŒr den SVerweis steht und mit getValue kannst Du den Wert auslesen, den Du dann fĂŒr die Ausgabe in Deiner Eingabemaske nutzen kannst.
Viele GrĂŒĂe
Chris
Hey Chris
zu allererst ein Kompliment an dich fĂŒr deine einerseits Komplexen Themen die du aber irre leicht erklĂ€rst und
selbst Laien recht Easy erklÀrst.
Meine Frage ich brauch in einer Dialog Box eine Elementen Liste zur Auswahl, leider muss es eine Dialogbox sein
da der Benutzer Technisch genau 0 Versiert ist und das ganze "gefĂŒhrt" oder besser gesagt "selbsterklĂ€rend" sein muss.
Ich hab mir 3 Dialogboxen gemacht das lÀuft alles soweid,
Nun benötige ich in der 2 und 3 Diabox eine Elementen Liste , grundsÀtzlich wie in der Zelle nur eben in der Dialogbox.
Ist so etwas möglich ?
mfg Martin
Hy eine Frage
kann ich in der Dialogbox gleich mehrere Felder eingeben
sowie z.B
ProduktA: Feld1
ProduktB: Feld2
und die Felder1 u. 2
auf Zeilen zuordnen?
lg Armin
Hi, ich hÀnge mich mal an die Frage dran. Habe die selbe Aufgabe zu lösen
Zeilenumbruch
Wer einen Zeilenumbruch benötigt, der kann das mit \n realisieren.
Wenn man beispielsweise das Ergebnis (also den Namen) in der nÀchsten Zeile haben möchte kann das mit folgender CodeÀnderung machen:
SpreadsheetApp.getUi().alert("Dein Name ist:\n" + deinName);
Das Funktioniert leider bei mir nicht; Ich habe es ersetzte:
function eingabeMaske() {
var ui = SpreadsheetApp.getUi();
var antwort = ui.prompt(
'Wie ist Dein Name',
'Hier kannst Du Deinen Namen eingeben',
ui.ButtonSet.OK_CANCEL);
var deinName=antwort.getResponseText()
if (deinName != ""){
SpreadsheetApp.getActiveSheet().getRange("A7").setValue(deinName);
SpreadsheetApp.getUi().alert("Dein Name ist:\n" + deinName);
}
}
und er ersetzt mit immer noch diese zeile A7