Microsoft Excel

Herbers Excel/VBA-Archiv

Daten in intelligente Tabelle kopieren

Betrifft: Daten in intelligente Tabelle kopieren von: whats up
Geschrieben am: 16.10.2020 22:21:10

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

Betrifft: AW: Daten in intelligente Tabelle kopieren
von: ralf_b
Geschrieben am: 16.10.2020 22:50:32

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.

Betrifft: AW: Daten in intelligente Tabelle kopieren
von: RPP63
Geschrieben am: 17.10.2020 08:31:54

Moin!
Nur am Rande:
ListObjects() (so genannte intelligente Tabellen) spricht man über VBA vollkommen anders an:
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables

Gruß Ralf

Betrifft: AW: Daten in intelligente Tabelle kopieren
von: whats up
Geschrieben am: 17.10.2020 13:29:10

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

Betrifft: AW: Daten in intelligente Tabelle kopieren
von: ralf_b
Geschrieben am: 17.10.2020 14:42:34

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