Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zusammenführen von Daten aus Tabellen (Schleifen?)

Zusammenführen von Daten aus Tabellen (Schleifen?)
04.02.2007 13:55:47
Daten
Liebe Leute,
In zwei Tabellen befinden sich die Daten von Untersuchungsgruppen „A“ und „B“. Diese Daten sind in den Tabellenblättern „Gruppe A“ und „Gruppe B“ enthalten. Diese Daten sollen in das Tabellenblatt „Gruppe A+B“ zusammengeführt werden.
Die Tabellen „Gruppe A“ und Gruppe B“ und „Gruppe A+B“ sind identisch aufgebaut:
Spalte 1: Merkmal („Merkmal 1“, „Merkmal 2“, Merkmal a“ usw.)
Spalte 2: Gruppenbezeichnung („A“ oder „B“)
Die Zusammenführung der Datensätze aus der Tabelle "Gruppe A" und der Tabelle "Gruppe B" in die Tabelle "Gruppe A+B" soll nach folgendem Muster erfolgen:
1. Die ersten beiden Datensätze (nebst Merkmalen) aus Tabelle "Gruppe A"
2. Der erste Datensatz (nebst Merkmal) aus Tabelle "Gruppe B"
3. Die nächsten beiden Datensätze (nebst Merkmalen) aus Tabelle "Gruppe A"
4. Der nächste Datensatz (nebst Merkmal) aus Tabelle "Gruppe B"
5. Die nächsten drei Datensätze (nebst Merkmalen) aus Tabelle "Gruppe A"
6. Der nächste Datensatz (nebst Merkmal) aus Tabelle "Gruppe B"
Oder kurz gesagt: 2 A - 1 B - 2 A - 1 B - 3 A - 1 B usw. usw.
Als besonderes Problem kann es sich ergeben, dass in der Tabelle "Gruppe A" keine Datensätze mehr vorhanden sind, die in die Tabelle "Gruppe A+B" kopiert werden können - siehe Beispiel:
https://www.herber.de/bbs/user/40127.xls
In diesem Fall sind die restlichen Datensätze der Tabelle "Gruppe B" in die Tabelle "Gruppe A+B" zu kopieren (s.u.):
Dass keine Datensätze mehr in der Tabelle "Gruppe A" "vorhanden sind, kann im Übrigen auch für die Datensätze in der Tabelle "Gruppe B" passieren. In diesem Fall sind die restlichen Datensätze der Tabelle "Gruppe A" in die Tabelle "Gruppe A+B" zu kopieren.
Möglicherweise liegt die Lösung des Problems in Schleifen sowie Wenn-Dann Abfragen ?
In jedem Fall finde ich keinen Ansatz, um das Problem zu „knacken“. Insofern meine Bitte um Hilfe bei der Lösung, z.B. durch Hinweise oder einen beispielhaften VBA-Code.
Vielen Dank und viele Grüße
Thomas B.

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

Betreff
Datum
Anwender
Anzeige
AW: Zusammenführen von Daten aus Tabellen (Schleif
04.02.2007 22:07:06
Daten
Hallo Thomas,
nachfolgender Code sollte es tun
Gruss
Franz

Sub AundBzusammenfuehren()
Dim wksA As Worksheet, wksB As Worksheet, wksAB As Worksheet, wb As Workbook
Dim ZeileA As Long, ZeileB As Long, ZeileAB As Long
Dim ZeileAletzte As Long, ZeileBletzte As Long
Set wb = ActiveWorkbook
Set wksA = wb.Worksheets("Gruppe A")
Set wksB = wb.Worksheets("Gruppe B")
Set wksAB = wb.Worksheets("Gruppe A+B")
ZeileAletzte = wksA.Cells(wksA.Rows.Count, 1).End(xlUp).Row
ZeileBletzte = wksB.Cells(wksB.Rows.Count, 1).End(xlUp).Row
ZeileA = 1
ZeileB = 1
ZeileAB = 1
Do
'Drei Schleifen bis zur nächsten Wiederholung
For J = 1 To 3
'Anzahl Zeilen aus Gruppe A in der jeweiligen Schleife festlegen
Select Case J
Case 1, 2
A_Zeilen = 2
Case 3
A_Zeilen = 3
End Select
'Anzahl Zeilen aus Gruppe A übertragen
For I = 1 To A_Zeilen
ZeileA = ZeileA + 1
If ZeileA > ZeileAletzte Then
'restliche Zeilen aus Gruppe B übertragen
Do
ZeileB = ZeileB + 1
If ZeileB > ZeileBletzte Then Exit Do
ZeileAB = ZeileAB + 1
wksAB.Cells(ZeileAB, 1).Value = wksB.Cells(ZeileB, 1).Value
wksAB.Cells(ZeileAB, 2).Value = wksB.Cells(ZeileB, 2).Value
Loop
Exit Do
End If
ZeileAB = ZeileAB + 1
wksAB.Cells(ZeileAB, 1).Value = wksA.Cells(ZeileA, 1).Value
wksAB.Cells(ZeileAB, 2).Value = wksA.Cells(ZeileA, 2).Value
Next
'Eine Zeile aus Gruppe B übertragen
ZeileB = ZeileB + 1
If ZeileB > ZeileBletzte Then
'restliche Zeilen aus Gruppe A übertragen
Do
ZeileA = ZeileA + 1
If ZeileA > ZeileAletzte Then Exit Do
ZeileAB = ZeileAB + 1
wksAB.Cells(ZeileAB, 1).Value = wksA.Cells(ZeileA, 1).Value
wksAB.Cells(ZeileAB, 2).Value = wksA.Cells(ZeileA, 2).Value
Loop
Exit Do
End If
ZeileAB = ZeileAB + 1
wksAB.Cells(ZeileAB, 1).Value = wksB.Cells(ZeileB, 1).Value
wksAB.Cells(ZeileAB, 2).Value = wksB.Cells(ZeileB, 2).Value
Next J
Loop
End Sub

Anzeige
AW: Zusammenführen von Daten @ fcs & YAL
05.02.2007 16:09:21
Daten
Liebe Leute,
vor allem:
Lieber fcs (Franz) &
Lieber YAL
vielen Dank für die Untersützung bei der Lösung meines Problems. Was soll ich sagen ?
1. Danke.
2. Danke.
3. Danke.
4. @ fcs: Das Makro läuft tadellos.
5. @ YAL: Die Idee mit der Formel in der Hilfsspalte ist ebenfalls klasse. Insofern: Viele Wege führen nach Rom ... :) Allerdings habe ich den Eindruck, dass die Anwendung der Formel für mich aufgrund der genannten Randbedingungen nicht zileführend ist - und zwar aus folgendem Grund:
Die Hilfsspalte bei der Gruppe B wäre statt mit 3, 6, 9, 12 mit 3, 6, 13 (!) fortzuführen, was sich wiederum auf die Formel für die Erzeugnung der Hilftsspalte auswirkt :(
Egal wie: Vielen Dank für Euer Interesse und Hilfe und die Gelegenheit einen Blick in die Trickkiste von Excel zu tun ;)
T.
Anzeige
AW: Zusammenführen von Daten aus Tabellen (Schleif
04.02.2007 23:04:46
Daten
Hi,
die Antwort ist zwar schon gegeben, aber ich bin immer der Meinung, es muß nicht immer per Makro gelöst werden :-)
Also:
Eigentlich, wenn Du neben den Einträge von Tabelle A -in eine zusätliche Spalte- eine Reihenfolge 1, 2, 4, 5, 7, 8, 10, 11, usw. eingibt und neben den Einträge in Tabelle B die Zahlen 3, 6 , 9, 12, usw.
dann bräuchtest nur alles in Tabelle A + B zu kopieren und nach dem dritten Spalte zu sortieren! (und diese Spalte einschliessend löschen)
oder ?
Na gut. Die Reihe 3, 6, 9, 12 schaft jeder.
Die 1,2, 4,5, 7,8, ... ist in tückicher:
_ Zahl 1 in C1 eintragen
_ "= C1+1+ISTGERADE(ZEILE()+1)*1" in C2
_ Formel rüberkopieren bis letzte Zeile
Das "+1" nach dem "ZEILE()" soll entfallen, je nach dem, ob es ab erste Zeile gerechnet wird oder zweite.
Um eine Rückmeldung freue ich mich.
Viel Spass
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige