Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1132to1136
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

Daten zusammenführen

Daten zusammenführen
marcel
Hallo Experten!
Folgendes Problem bzw. folgende Herausforderung:
Es gibt verschiedene Datenbereiche in einem Tab.-Blatt, die aber nicht immer in allen Zeilen auch Datensätze enthalten (es gibt aber keine Leerzeilen zwischen Datensätzen; nur der Rest des Datenbereichs kann dann leer sein).
Datenbereich (DB1) A4 bis G500
Datenbereich (DB2) J4 bis P500
Die Datenbereiche sind identisch aufgebaut. Nun möchte ich die Zeilen mit Einträgen aus beiden Datenbereichen in einem anderen Tab.-Blatt zusammenführen. Dort im Bereich A1-G1000.
Wie kann ich das Zusammenführen hinbekommen?
Es sollen alle Datensätze aus dem DB1 beginnend mit A1 aufgelistet werden und wenn der Bereich keine Daten mehr führt sollen die Daten aus dem DB2 darunter aufgelistet werden.
Danke für eure Hilfe.
Marcel

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten zusammenführen
04.02.2010 15:15:06
ludicla
Hallo Marcel,
aus Deinen kurzen Satzbeschreibung kann ich mir nicht viel zusammenreimen.
Kannst Du mal ne Musterdatei mit der Problemstellung laden ?
Gruss Ludicla.
AW: Daten zusammenführen
04.02.2010 15:41:50
JoWE
Hallo Marcel,
einfach die beiden Bereiche nacheinander kopieren und einfügen geht nicht?
Mit VBA vlt. so:
Sub jupp()
Dim sh1, sh2, sh3 As Object
Set sh1 = ThisWorkbook.Sheets("DB1")
Set sh2 = ThisWorkbook.Sheets("DB2")
Set sh3 = ThisWorkbook.Sheets("Neu")
Dim r1, r2 As Range
Set r1 = sh1.Range("A4:G500")
Set r2 = sh2.Range("J4:P500")
sh1.Select
r1.Copy Destination:=sh3.[A1]
sh2.Select
r2.Copy Destination:=sh3.Cells( _
sh3.[A1].End(xlDown).Row + 1, 1)
sh3.Select
End Sub

Gruß
Jochen
Anzeige
AW: Daten zusammenführen
04.02.2010 15:53:24
marcel
nur einfügen ist nicht gut. es sind exemplarisch nun zwei bereiche - in echt sind es 10-15 bereiche. jeder kann max 500 zeilen haben, es können aber auch deutlich weniger sein. daher suche ich eine formellösung.
AW: Daten zusammenführen
04.02.2010 18:25:25
Marcel
N'Abend.
So, nun mit einem Beispiel (stark verkürzt dargestellt):
https://www.herber.de/bbs/user/67772.xls
Ziel soll es sein, die Datensätze aus den verschiedenen Datenbereichen im Tab.-Blatt "Zusammenfassung" untereinander zusammenzuführen.
Problem ist, dass zwar immer ein fester Bereich in jedem Datenbereich (DB1, DB2 usw.) von Zeile 4 bis Zeile 500 ist, aber jeden Monat unterschiedlich viele Zeilen mit Daten gefüllt sind.
Bin gespannt auf eure Tipps. Das Ganze sollte möglichst per Formel ohne VBA gelöst werden.
Anzeige
AW: Daten zusammenführen
04.02.2010 20:56:24
JOWE
Hallo Marcel,
so vieleicht:
Public sh1, sh2 As Object
Sub start()
Dim i As Long
Set sh1 = ThisWorkbook.Sheets("Tabelle1")
Set sh2 = ThisWorkbook.Sheets("Zusammenfassung")
For i = 1 To 255 Step 9
If sh1.Cells(4, i)  "" Then
Call Bereich_kopieren(sh1.range(sh1.Cells(4, i), _
sh1.Cells(500, i + 6)).Address)
Else
Exit Sub
End If
Next
End Sub

Sub Bereich_kopieren(bereich)
Dim ez As Long
Dim rBer As range
Set rBer = sh1.range(bereich)
If sh2.[A1] = "" Then
rBer.Copy Destination:=sh2.[A1]
Else
ez = sh2.[A65536].End(xlUp).Row + 1
rBer.Copy Destination:=sh2.Cells(ez, 1)
End If
If ez = 0 Then ez = 1
Call LeereZeilenLöschen(ez)
End Sub

Sub LeereZeilenLöschen(ez)
Dim tmp, x As Long
Application.ScreenUpdating = False
tmp = sh2.Cells.Find("*", sh2.Cells(ez, 1), , , xlByRows, xlPrevious).Row
For x = tmp To ez Step -1
Do While Application.CountA(Rows(x)) = False
Rows(x).EntireRow.Delete
Loop
Next x
Rows(sh2.[A1].End(xlDown).Row & ":" & 65536).Delete
lz = sh2.Cells(ez).End(xlDown).Row
sh2.range(sh2.Cells(ez, 1), sh2.Cells(sh2.Cells(ez). _
End(xlDown).Row, 7)).Borders.LineStyle = xlNone
End Sub

Jochen
Anzeige
AW: Daten zusammenführen
05.02.2010 16:21:43
Odje.K
Hallo Jochen,
toller Code.
Dazu noch eine Frage:"Wie setzt man nach jedem DB einen Unterstrich?"
Gruß
Odje
AW: Daten zusammenführen
05.02.2010 20:28:13
JOWE
Hallo Odje,
was meinst Du?
Gruß
Jochen
AW: Daten zusammenführen
05.02.2010 21:18:51
JOWE
meintest Du dies:
Sub LeereZeilenLöschen(ez)
Dim tmp, x As Long
Application.ScreenUpdating = False
tmp = sh2.Cells.Find("*", sh2.Cells(ez, 1), , , xlByRows, xlPrevious).Row
For x = tmp To ez Step -1
Do While Application.CountA(Rows(x)) = False
Rows(x).EntireRow.Delete
Loop
Next x
Rows(sh2.[A1].End(xlDown).Row & ":" & 65536).Delete
lz = sh2.Cells(ez).End(xlDown).Row
sh2.range(sh2.Cells(ez, 1), sh2.Cells(sh2.Cells(ez). _
End(xlDown).Row, 7)).Borders.LineStyle = xlNone
lz = sh2.[A1].End(xlDown).Row
'Die letzte Zeile des Bereiches erhält eine 'Trennungslinie'
With sh2.range(sh2.Cells(lz, 1), sh2.Cells(lz, 7)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

Anzeige
AW: Daten zusammenführen
06.02.2010 09:34:31
Odje.K
Moin, moin Jochen,
genau so.
Danke für die die Änderung.
Wünsche noch ein schönes Wochenende.
Gruß
Odje

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige