Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1856to1860
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenbereich einfügen

Datenbereich einfügen
14.11.2021 23:12:59
SchubertFranzl
Hallo
ich möchte eine Tabelle in eine sog. intelligente Tabelle kopieren und dort die überschüssigen Zeilen löschen.
Geht das mit Makro? (Sicher geht es, nur ich schaffe es nicht.)
Händisch ist das etwas mühsam, insbesondere das Bestimmen der überschüssigen Zeilen. Der Einfügebereich hat ein paar Hundert Zeilen.
Hier habe ich eine Datei hochgeladen.
https://www.herber.de/bbs/user/149144.xlsx
Der Inhalt des Blattes "Dienstag" (oder des Blatts "Montag") soll in in die formatierte Tabelle im Blatt "Auswertung" kopiert werden. Immer die ersten drei Spalten. Nur die Zeilenlänge ist jedes Mal anders. Daher müssen die überschüssigen Zeilen, die beim Einfügen nicht überschrieben werden, geöscht werden.
Die Spalten D und E im Blatt "Auswertung" sollen in den Zeilen der eingefügten Zellen erhalten bleiben.
Danke für Eure Mithilfe.
LG,
Franz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbereich einfügen
15.11.2021 07:16:50
ralf_b
Hier ein Beispiel um Montag in die Auswertung zu kopieren.

Option Explicit
Sub copyToListobject()
Dim oLstobject As ListObject
Dim lMAxRows As Long
Set oLstobject = Worksheets("Auswertung").ListObjects(1)
lMAxRows = oLstobject.ListRows.Count
oLstobject.Range.Rows(2 & ":" & lMAxRows).Delete
Sheets ("Montag")
.UsedRange.Offset(1).Resize(.UsedRange.Rows.Count - 1).Copy
End With
oLstobject.ListRows(1).Range.Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

Anzeige
AW: kleine Korrektur
15.11.2021 09:06:06
Luschi
Hallo SchubertFranz,
statt:

Sheets ("Montag")
.UsedRange.Offset(1).Resize(.UsedRange.Rows.Count - 1).Copy
End With
so:

With Sheets("Montag")
.UsedRange.Offset(1).Resize(.UsedRange.Rows.Count - 1).Copy
End With
Gruß von Luschi
aus klein-Paris
besten Dank. owt
15.11.2021 17:42:26
ralf_b
AW: besten Dank. owt
15.11.2021 18:18:43
SchubertFranzl
Ralf, Dein Makro hat mir auf die Sprünge geholfen.
Vielen Dank.
Werner, sicher gibt es mehrere Wege, die zum Ziel führen, sicher auch eine Formellösung oder Power Query. Nur, die scheiden aus. Erstens, weil Ralfs Makro mit ein paar Anpasungen alles macht, so wie ich es brauche. Und zweitens kenne ich keine passende Formel dazu und zu PQ konnte ich mich bis jetzt noch nicht aufraffen. Im Forum hier wird nach Lösungen mit PQ nur wenig gefragt. Offensichtlich ist dieses Tool so gut, dass es kaum Fragen offen läßt.
Danke nochmals allen. LG, Franz.
Anzeige
AW: oder alternativ ohne VBA ....
15.11.2021 09:00:00
neopa
Hallo Franz,
... wenn es keine Massendatenauswertung ist, dann geht es auch mit einer Formellösung und einer zusätzlichen Dropdownzelle, in der die Tabellenblattnamen zur Auswahl angeboten werden oder analog mit Power Query Funktionalität. Wobei diese in Deiner älteren Excelversion nicht standardmäßig angeboten wird, aber kostenfrei von der MS-Seite downgeladen und als Add In nachinstalliert werden kann.
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige