Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Google Tabellen in nächste freie Zeile kopieren

Google Tabellen in nächste freie Zeile kopieren
24.09.2023 19:55:57
Andre N.
Hallo,
ich arbeite in einem Verein in dem kranke Menschen Unterstützung und eine Beschäftigung finden. Da gibt es u.a. eine e-Werkstatt. Dort werden gespendete PCs und Notebooks aufgearbeitet und verkauft. Nun läuft dort vieles noch mit Papier was doch ziemlich chaotisch ist. Wir wollten nun probieren eine Google Tabelle einzuführen bei der vieles nur angeklickt werden muss. Nun läuft die „Aufarbeitung“ in mehreren Stufen ab. Einmal die Bestandsaufnahme, 1. Installation, 1. Endkontrolle und 2. Endkontrolle. Danach wird ein Verkaufspreis ermittelt usw. Nun habe ich in den 3 Schritten auf den Tabellenblättern je ein Kästchen mit „defekt festgestellt“ eingefügt. Wenn ein defekt festgestellt wurde sollen die Geräte in eine „Notebooks defekt“ Liste eingetragen werden und dann zurück ins Lager. Ich möchte das ganze für die Leute so einfach wie möglich machen. Nun möchte ich in jeder Zeile neben „defekt festgestellt?“ einen Button einfügen der beim anklicken einige Zellen der „Notebooks Bestand“ Liste in die Notebooks defekt“ Liste kopiert. Ich habe ein Makro aufgezeichnet für die erste Zeile der Bestandsliste. Das kopieren funktioniert auch. Nun soll aber in jeder der 3 Installations und Endkontrolle Listen in jeder Zeile ein Button sein der die Daten der bestimmten Zeile aus „Notebooks Bestand“ in die nächste freie Zeile der Notebooks defekt Liste kopiert. Es geht um Hersteller, Modell, Seriennummer und einige Module wie Ram, Wlan Karte und co. So können benötigte Ersatzteile usw. schneller gefunden werden. Ich habe schon viel gegoogelt aber noch keine passende Lösung gefunden. Da die Zellen von der Bestandsliste nicht mit der defekt Liste identisch sind, muss alles von Zelle zu Zelle kopiert werden. Ich habe den Makro Code mal angehängt.

Vielen Dank vorab für eure Bemühungen!!

LG Andre
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Google Tabellen in nächste freie Zeile kopieren
24.09.2023 20:38:19
Andre N.
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('BR5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('A5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('A5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!A5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('X5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('H5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!X5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('Y5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('I5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!Y5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('Z5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('K5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!Z5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AA5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('M5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AA5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AB5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('Q5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AB5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AC5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('R5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AC5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AD5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('T5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AD5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AE5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('U5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AE5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AF5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('W5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AF5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AG5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('X5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AG5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AH5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('Y5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AH5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebook Bestand'), true);
spreadsheet.getRange('AI5').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Notebooks defekt'), true);
spreadsheet.getRange('Z5').activate();
spreadsheet.getRange('\'Notebook Bestand\'!AI5').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};
Anzeige
falsches Forum: Excel != GoogleTabellen owt
24.09.2023 21:13:16
ralf_b
Erläuterung zu ralf_b
25.09.2023 19:13:54
lupo1
Mit Google-Tabellen selbst wird Dir hier noch geholfen werden können.

Die dortige Programmier-Sprache aber hat nichts mit VBA zu tun - und sie wird nur mit etwas Glück von jemandem beherrscht.
;
Anzeige
Anzeige

Infobox / Tutorial

Google Tabellen in die nächste freie Zeile kopieren


Schritt-für-Schritt-Anleitung

Um Daten aus einer Google Tabelle in die nächste freie Zeile einer anderen Tabelle zu kopieren, kannst Du ein Google Apps Script verwenden. Folgende Schritte helfen Dir dabei:

  1. Öffne Deine Google Tabelle und klicke auf Erweiterungen > Apps Script.

  2. Erstelle ein neues Skript und füge den folgenden Code ein, um die Daten zu kopieren:

    function copyToNextFreeRow() {
       var spreadsheet = SpreadsheetApp.getActive();
       var sourceSheet = spreadsheet.getSheetByName('Notebook Bestand');
       var targetSheet = spreadsheet.getSheetByName('Notebooks defekt');
    
       // Bestimme die nächste freie Zeile
       var targetRange = targetSheet.getLastRow() + 1;
    
       // Kopiere die Daten
       targetSheet.getRange(targetRange, 1).setValue(sourceSheet.getRange('A5').getValue()); // Hersteller
       targetSheet.getRange(targetRange, 2).setValue(sourceSheet.getRange('B5').getValue()); // Modell
       // Weitere Zellen entsprechend anpassen
    }
  3. Speichere das Skript und schließe den Editor.

  4. Füge einen Button hinzu: Wähle Einfügen > Zeichnung und zeichne einen Button. Klicke auf den Button, um das Skript zu verknüpfen.

  5. Teste den Button, um sicherzustellen, dass die Daten korrekt in die nächste freie Zeile kopiert werden.


Häufige Fehler und Lösungen

  • Fehler: Der Button funktioniert nicht.

    • Lösung: Stelle sicher, dass Du das Skript korrekt mit dem Button verknüpft hast.
  • Fehler: Daten werden nicht korrekt kopiert.

    • Lösung: Überprüfe die Zellreferenzen im Skript. Achte darauf, dass sie mit Deinen Daten übereinstimmen.
  • Fehler: Leere Zeilen werden nicht gelöscht.

    • Lösung: Verwende den Befehl Google Sheets leere Zeilen löschen, um diese vor dem Kopieren zu entfernen.

Alternative Methoden

Du kannst auch die Funktion IMPORTRANGE verwenden, um Daten zwischen Google Tabellen zu kopieren. Diese Methode ist besonders nützlich, wenn Du Daten aus verschiedenen Tabellen zusammenführen möchtest. Ein Beispiel:

=IMPORTRANGE("URL der anderen Tabelle", "Tabelle1!A1:B10")

Dieses Beispiel importiert die Daten aus einem bestimmten Bereich einer anderen Tabelle.


Praktische Beispiele

  1. Ersatzteile kopieren: Wenn Du eine Liste von Ersatzteilen führst, kannst Du den oben genannten Code anpassen, um spezifische Module wie RAM und WLAN-Karten zu kopieren.

  2. Daten über mehrere Blätter: Wenn Du mehrere Tabellenblätter verwendest (z.B. für jede Installationsstufe), kannst Du entsprechende Funktionen in Deinem Skript hinzufügen, um jede Zeile zu verarbeiten.


Tipps für Profis

  • Automatisierung: Du kannst Trigger einrichten, um das Skript automatisch auszuführen, wenn Änderungen erfolgen. Das spart Zeit und erhöht die Effizienz.
  • Bedingte Formatierung: Nutze die google tabelle bedingte formatierung ganze zeile, um wichtige Daten hervorzuheben.
  • Formeln verwenden: Mit der google tabelle formel runterziehen-Funktion kannst Du Formeln automatisch auf neue Zeilen anwenden, während Du Daten hinzufügst.

FAQ: Häufige Fragen

1. Wie füge ich ein Skript in Google Tabellen hinzu?
Du kannst ein Skript hinzufügen, indem Du auf Erweiterungen > Apps Script gehst und Deinen Code dort einfügst.

2. Kann ich mehrere Zellen gleichzeitig kopieren?
Ja, Du kannst mehrere Zellen kopieren, indem Du die entsprechenden Zellreferenzen im Skript anpasst.

3. Wie kann ich leere Zeilen vor dem Kopieren entfernen?
Verwende die Funktion google sheets leere zeilen löschen, um diese vor dem Kopieren zu beseitigen.

4. Ist es möglich, die Daten aus einer anderen Tabelle zu importieren?
Ja, mit der Funktion SVERWEIS oder IMPORTRANGE kannst Du Daten aus anderen Google Tabellen importieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige