Daten einer Zelle in anderes Tabellendokument kopieren (GOOGLE Tabellen SCRIPT)

Daten einer Zelle in anderes Tabellendokument kopieren mit Google Tabellen Script

Ich wurde gefragt ob es möglich ist den Zellinhalt von einem Tabellenblatt in ein anderes Dokument zu kopieren.
Hier sollte zum Beispiel der Inhalt von Zelle „A5“ kopiert werden und in ein anderes Dokument in die gleiche Zelle kopiert werden. Der Eintrag von der Quelle sollte aber bestehen bleiben.



Nachfolgend also mein Lösungsvorschlag.
Das Script muss über den Script-Editor in das Dokument kopiert werden welches die Quell-Tabelle enthält, also die Tabelle von der kopiert werden soll. Wie das mit dem Script-Editor funktioniert habe ich in dem Video-Tutorial „Mein erstes Script programmieren“ gezeigt. In dieser Tabelle muss eine Zeichnung eingefügt werden damit das Script darüber aufgerufen werden kann. Die Zeichnung dient dann als Button zum Ausführen des Scripts. Der Name der Funktion nennt sich bei mir „nachExternKopieren“. Ihr könnt das natürlich entsprechend umbenennen. Denkt aber daran dass der Name der Funktion für den Button benötigt wird und genau übereinstimmen muss (ohne die Klammern).

Das GOOGLE Script zum Kopieren von Daten einer Zelle in ein anderes Dokument:

 Erläuterung zum Script

Die 2 Zeile:
Hier steht nur das jetzt die Funktion „nachExternKopieren“ beginnt. Die normalen Klammern ohne Inhalt zeigen das beim Aufruf der Funktion keine Parameter übergeben werden brauchen. Die geschweifte Klammer zeigt das hier der Bereich der Funktion beginnt. Sie Endet in der vierten Zeile mit der schließenden geschweiften Klammer.

Die 3 Zeile:
Hier wird eine Variable „sheet“ deklariert. Es wird der Variablen das Tabellenblatt mit dem Namen „NAME-DER-QUELL-TABELLE“ zugewiesen. Vorab ist es aber wichtig auf das Aktive Tabellendokument zuzugreifen. Dafür dient der Aufruf der Methode „SpreadsheetApp.getActiveSpreadsheet()“

Die 4 Zeile:
Hier wird über die ID des Tabellendokuments auf das Zieldokument zugegriffen. Diese ID befindet sich im Browser innerhalb des links und ist diese sehr lange kryptische Zeichenkette. Weiterhin wird auf das Tabellenblatt innerhalb des Dokuments mit dem Namen „NAME-DER-ZIEL-TABELLE“ zugegriffen. Die „getRange“ Befehle verweisen auf die jeweilige Zelle die entweder ausgelesen oder beschrieben werden soll. Mit „getValue“ wird die Zelle ausgelesen und mit „setValue“ wird der Wert gesetzt.

Die 5 Zeile:
Die schließende geschweifte Klammer nicht vergessen die Kennzeichnet dass hier der Bereich von der Funktion zu Ende ist.

Wer die Zelle von der Quell-Tabelle löschen möchte kann das mit setValue(„“) erledigen.

Sonstiges

Schaut auch mal nach meiner kleinen Google Tabellen Script Snippets – Sammlung. Ich habe hier einige kleine Scripte geschrieben die Ihr vielleicht für Eurer Projekt nutzen könnt.

Euch gefällt die Datei und Ihr wollt Euch unbedingt bedanken?
Hier ist meine AMAZON – Wunschliste [HIER KLICKEN] 😉



Das könnte Dich auch interessieren

10 Kommentare

  1. Flo sagt:

    Hallo Chris

    Ich versuche grade das ich einen ganzen Bereich aus der Tabelle in ein anderes Dokument kopiere und das es dort in nächste freien Zeile Kopiert wird

    Das mit dem Bereich habe ich hin bekommen

    Neu.getRange(„B5:BC5“).setValues(Quelle.getRange(„B5:BC5“).getValues());

    Ich weiß nur nicht wie ich .getLastRow()+1,2), {contentsOnly:true} richtig einsetzte

    LG Flo

    • Chris sagt:

      Hi Flo, ich habe das ein bisschen angepasst damit Du siehst wie man das machen könnte. Ich übertrage sozusagen einen Bereich von 4 mal 4 Zellen (A4:D7) in ein anderes Tabellenblatt:

      function nachExternKopieren(){
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(„Tabellenblatt1“);
      var sheet2=SpreadsheetApp.openById(„ID-ZU-DEINEM-ANDEREN-DOKUMENT“).getSheetByName(„Tabellenblatt1“);
      sheet2.getRange(sheet2.getLastRow()+1,1,4,4).setValues(sheet.getRange(„A4:D7“).getValues());
      }

      sheet2.getLastRow()+1 gibt die nächste leere Zeile an. Ohne die +1 würdest Du genau in die letzte Zeile schreiben.
      Die zweite 1 gibt die Spaltennummer an. Also Spalte A.
      Die 4 er geben genau den Bereich an, also von A4 bis D7 sind es 4 Zeilen und auch vier Spalten.

      Viele Grüße
      Chris

      • Flo sagt:

        Funktioniert Super Danke Schön 🙂

      • Patrik sagt:

        Hallo

        Ich habe da mal eine frage.

        Ich wollte denn bereich R12,R13 und R14 gern Kopieren in ein neues Blatt.
        Dies sollte aber immer eine neue Spalte nehmen und nicht das alte überschreiben.

        Ich danke dir

        • Chris sagt:

          Hi Patrik,
          Du kannst Zellen markieren und mit STRG+C kopieren. Anschließend gehst Du auf das andere Tabellen-Blatt oder sogar Tabellen-Dokument und fügst das mit STRG+V ein.
          Du kannst aber auch über „Bearbeiten“ – > „Inhalte einfügen“ – > „Transponiert einfügen“ die Daten sozusagen gedreht einfügen.
          Viele Grüße
          Chris

          • Patrik sagt:

            Danke =)

            Aber dies sollte immer passieren wenn in dieser Zeile was geändert wird.

            Oder leichter gesagt.
            Er soll Die Name zählen wo xy Sachen eingetagen haben. Aller Dings sind die Name alle 4 Stunden anderster in diesem Bereich.

            https://docs.google.com/spreadsheets/d/186dgAyv7L56waxSGIqD72FYQqUlV6zQTuu09J7KW9-U/edit?usp=sharing

            Hier mal ein bespiel.
            Wie kann man dies am besten umsetzten.

          • Chris sagt:

            Da wirst Du vermutlich um die Programmierung nicht herum kommen. Du müsstest dann über onEdit eine Funktion aufrufen die Einträge kopiert und in eine neue Tabelle schreibt sobald etwas geändert wird. Anschließend kannst Du die Einträge ja auf verschiedene Weise zusammen zählen oder Einträge Summieren. Mit Summewenns oder Zählenwenns kannst Du Dir dann eine kleine Statistik der Einträge abrufen. Wird aber ziemlich aufwändig weil Du Dich erst in die Programmierung einarbeiten müsstest.
            Auch für den zweiten Bereich unten wirst Du das über die Programmierung machen müssen. Hier kannst Du einen zeitlichen Trigger setzen der am Sonntag die Funktion aufruft. Die Funktion würde dann alles zurücksetzen.
            Ein guter Einstieg für die Programmierung findest Du hier:
            https://toptorials.com/mein-erstes-script-programmieren-mit-google-tabellen/

  2. Patrik sagt:

    Ich danke dir dann setzte ich mich da mal dran und versuche mein glück

    • Chris sagt:

      Wenn man die Zeit hat, dann macht das auch richtig Laune 😉 Ich würde auch gerne noch sehr viel mehr programmieren aber die Zeit ist durch mehrere Projekte extrem begrenzt.
      Viel Spaß beim Programmieren 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.