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: Daten in intelligente Tabelle kopieren

Daten in intelligente Tabelle kopieren
16.10.2020 22:21:10
whats
Hallo Forum,
ich möchte Daten aus mehreren Bereichen von versch. Tabellenblättern in eine anfänglich leere intelligente Tabelle auf einem anderen Tabellenblatt kopieren. Excel sagt: Es wird mind. ein Datensatz benötigt. D.h. die Tabelle besteht aus einer Überschrift und einer leeren Zeile (Datensatz). Wenn ich in diesem Tabellenblatt die letzte Zeile ermittle, bekomme ich diesen leeren Datensatz ausgewiesen. Jedoch möchte ich immer in die darauf folgende freie Zeile meine Daten eintragen (letzte Zeile +1). Damit würde diese leere Zeile übersprungen und die Daten außerhalb der Tabelle eingetragen. Wie kann ich aus mehreren Bereichen Daten in diese Tabelle kopieren ohne dass eine Zeile frei bleibt oder der Inhalt der letzten Zeile gelöscht wird.
Anbei noch eine Beispieldatei und der Code dazu.
https://www.herber.de/bbs/user/140920.xlsm
Danke vorab für eure Hilfe.
whats up
Option Explicit
Sub Transfer()
Application.ScreenUpdating = False
Dim SourceLastRow As Integer
Dim DestLastRow As Integer
SourceLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
DestLastRow = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row
ActiveSheet.Range("A2:E" & SourceLastRow).Copy
Sheets("Tabelle1").Range("A" & DestLastRow).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = True
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in intelligente Tabelle kopieren
16.10.2020 22:50:32
ralf_b
wenn nur ein Datensatz (databodyrange.rows.count )ausgewiesen wird, prüfe ob dort Zellen nicht leer sind. oder ob eine bestimmte zelle z.b. irgend eine ID-Nr oder sowas leer ist.
AW: Daten in intelligente Tabelle kopieren
17.10.2020 13:29:10
whats
Hallo zusammen,
besten Dank für eure Antworten. Die Seite zum SpreadSheetGuru habe ich gestern auch gefunden. Danke für den Hinweis. Da muss ich mich erst mal einlesen.
@ Ralf: Hast du vielleicht ein Beispielcode, den ich verwenden könnte? Muss ich generell eine Prüfabfrage machen? Weil eine leere intell. Tabelle hat doch immer einen ersten leeren Datensatz. Und wenn sie befüllt ist, müssen die Daten unterhalb des letzten Datensatzes eingetragen werden, oder?
Freu mich über jeden Hinweis.
Danke und Gruss,
whats up
Anzeige
AW: Daten in intelligente Tabelle kopieren
17.10.2020 14:42:34
ralf_b
Nein, du musst generell keine Prüfabfragen machen. Ich dachte du wolltest Daten immer unter die letzte belegte Zeile anfügen. Zumindest bei der ersten Einfügeoperation könnte eine leere Datensatzzeile vorhanden sein. Das war deine Aussage. Ich mache nicht so besonders viel mit Listobjects. Nun kann ich dir nicht sagen ob das beim Programmieren ein Problem ist. Das kannst du durch probieren herausfinden oder Jemand erzählt hier was genaueres. Ich würde anhand deiner Schilderung also die erste Zeile zu Beginn checken.
Der Datenbereich vom Listobject ist die databodyrange. mittels count oder ähnliches kann man bestimmt prüfen ob die Databodyrange Werte enthält. Beispiele dafür gibts sicherlich im Netz und Das du noch andere Dinge vorhast zu programmieren, gehe ich davon aus das du damit klar kommst.
viel Erfolg
Gruß
RB
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten in intelligente Tabelle kopieren


Schritt-für-Schritt-Anleitung

  1. Intelligente Tabelle erstellen:

    • Öffne Excel und wähle den Datenbereich aus, den du in eine intelligente Tabelle umwandeln möchtest.
    • Gehe zu Einfügen und klicke auf Tabelle. Achte darauf, das Kontrollkästchen „Tabelle hat Überschriften“ zu aktivieren.
  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Modul hinzufügen:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle Einfügen > Modul.
  4. Code einfügen:

    • Füge den folgenden Code in das Modul ein:
Sub Transfer()
    Application.ScreenUpdating = False
    Dim SourceLastRow As Integer
    Dim DestLastRow As Integer
    SourceLastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    DestLastRow = Worksheets("Tabelle1").ListObjects("DeineTabelle").ListRows.Count + 1
    ActiveSheet.Range("A2:E" & SourceLastRow).Copy
    Worksheets("Tabelle1").ListObjects("DeineTabelle").ListRows.Add
    Worksheets("Tabelle1").Range("A" & DestLastRow).PasteSpecial Paste:=xlPasteValues
    Application.ScreenUpdating = True
End Sub
  1. Makro ausführen:
    • Schließe den VBA-Editor und gehe zurück zu Excel. Führe das Makro über Entwicklertools > Makros aus.

Häufige Fehler und Lösungen

  • Problem: Die intelligente Tabelle zeigt nur einen Datensatz an.

    • Lösung: Überprüfe, ob die erste Zeile des databodyrange leer ist. Es könnte sein, dass der erste Datensatz nicht korrekt erfasst wird.
  • Problem: Beim Kopieren wird die letzte Zeile nicht korrekt ermittelt.

    • Lösung: Stelle sicher, dass du ListObjects("DeineTabelle").ListRows.Count verwendest, um die Anzahl der belegten Zeilen in der intelligenten Tabelle zu ermitteln.

Alternative Methoden

  • Direktes Einfügen ohne VBA:

    • Du kannst die Daten manuell in die intelligente Tabelle einfügen, indem du die letzten belegten Zellen kopierst und in die nächste freie Zeile der intelligenten Tabelle einfügst.
  • Power Query:

    • Eine weitere Möglichkeit besteht darin, Power Query zu verwenden, um Daten aus verschiedenen Quellen zusammenzuführen und in eine intelligente Tabelle zu laden.

Praktische Beispiele

  1. Daten aus mehreren Tabellenblättern:

    • Nutze das obige Makro, um Daten aus verschiedenen Tabellenblättern zu einer intelligenten Tabelle zu konsolidieren. Ändere den ActiveSheet-Bereich entsprechend.
  2. Leere Tabelle zum Ausfüllen:

    • Wenn du eine leere Tabelle zum Ausfüllen hast, kannst du das Makro so anpassen, dass es die Daten immer unterhalb der letzten belegten Zeile einfügt.

Tipps für Profis

  • Fehlerbehandlung einbauen:

    • Füge im VBA-Code Fehlerüberprüfungen hinzu, um sicherzustellen, dass das Makro nicht abstürzt, wenn es auf unerwartete Daten stößt.
  • Automatisierung:

    • Du kannst den Code so erweitern, dass er automatisch beim Öffnen der Arbeitsmappe oder beim Ändern der Daten ausgeführt wird.

FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile einer intelligenten Tabelle ermitteln?
Verwende Worksheets("Tabelle1").ListObjects("DeineTabelle").ListRows.Count, um die Anzahl der belegten Zeilen in der intelligenten Tabelle zu ermitteln.

2. Was ist eine leere Tabelle zum Ausfüllen?
Eine leere Tabelle zum Ausfüllen ist eine intelligente Tabelle, die initial keine Daten enthält, aber für das spätere Hinzufügen von Datensätzen vorbereitet ist.

3. Wie kann ich Daten in eine intelligente Tabelle kopieren?
Du kannst Daten in eine intelligente Tabelle kopieren, indem du den VBA-Code verwendest, der die aktuellen Daten aus einem Bereich in die nächste freie Zeile der intelligenten Tabelle überträgt.

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