Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1668to1672
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

Zusammenführung von 2 Tabellen - komplex

Zusammenführung von 2 Tabellen - komplex
24.01.2019 18:22:13
2
Liebes Forum,
ich möchte gerne 2 Tabellen: Tabelle1 + Tabelle2 in Tabelle 3 zusammenführen. Die gewünschte Form könnt ihr der Beispielmappe entnehmen. Die Farben sind nur zur besseren Veranschaulichung gedacht.
https://www.herber.de/bbs/user/126977.xlsx
Nach kurzer Rücksprache mit "ChrisL", hat er mir empfohlen die Angelegenheit mit For-Next-Schleifen zu lösen. Da meine VBA-Kenntnisse relativ bescheiden sind, habe ich etwas Recherche betrieben und der unten angefügte Code kam heraus. Weniger überraschenderweise funktioniert er nicht.
Sub Zusammenführen()
Dim WS1 As Worksheet, WS2 As Worksheet, WS3 As Worksheet
Dim iZeile1 As Long, iZeile2 As Long, iZeile3 As Long
Dim letzteZeile As Long, merkeZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
Set WS3 = Worksheets("Tabelle3")
Application.ScreenUpdating = False
WS3.Rows("2:65536").Delete
With WS1
letzteZeile1 = .Cells(Rows.Count, 1).End(xlUp).Row
With .Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A2:A" & letzteZeile), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("B2:B" & letzteZeile), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A1:D" & letzteZeile)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
With WS2
letzteZeile2 = .Cells(Rows.Count, 1).End(xlUp).Row
With .Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A2:A" & letzteZeile), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("B2:B" & letzteZeile), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("A1:C" & letzteZeile)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
For iZeile1 = 2 To letzteZeile
If .Cells(iZeile3, 1)  .Cells(iZeile1 - 1, 1) Then 'neuer Block
iZeile3 = iZeile3 + 2
merkeZeile = iZeile3
WS3.Cells(iZeile3, 1) = WS1.Cells(iZeile1, 1)
With WS3.Range(WS3.Cells(iZeile3, 1), WS3.Cells(iZeile3, 5)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End If
For iZeile2 = 2 To letzteZeile
If .Cells(iZeile3, 1)  .Cells(iZeile2 - 1, 1) Then 'neuer Block
iZeile3 = iZeile3 + 2
merkeZeile = iZeile3
WS3.Cells(iZeile3, 1) = WS2.Cells(iZeile2, 1)
With WS3.Range(WS3.Cells(iZeile3, 1), WS3.Cells(iZeile3, 5)).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End If
If WS3.Cells(iZeile1, 1) = WS1.Cells(iZeile2, 1) & WS Then
WS3.Cells(iZeile3, 5) = WS3.Cells(iZeile3, 5) + WS2.Cells(iZeile2, 3)
Else 'neuer Datensatz in bestehenden Block
iZeile3 = iZeile3 + 1
WS3.Cells(iZeile3, 2) = .Cells(iZeile1, 2)
WS3.Cells(iZeile3, 3) = .Cells(iZeile1, 3)
WS3.Cells(iZeile3, 4) = .Cells(iZeile1, 4)
WS3.Cells(iZeile3, 5) = .Cells(iZeile2, 3)
End If
Next iZeile1
Next iZeile2
End With
End Sub

Ich würde mich freuen, wenn mir einer von euch VBA-Experten weiterhelfen könnte. Habe ehrlich gesagt keine Ahnung wie ich da vorgehen soll.
Besten Dank im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Zusammenführung von 2 Tabellen - komplex
26.01.2019 11:04:16
2
Hallo Markus,
ich bin hier seit gestern am experimentieren. Das ist ganz schön "tricky"! Mal sehen, ob ich das hin bekomme. Ich gebe dir wieder bescheid.
Servus
AW: Zusammenführung von 2 Tabellen - komplex
26.01.2019 18:59:14
2
Hallo Markus,
so wie du das haben willst, bringe ich es nicht hin. Wäre es auch möglich, die Vorkommnisse in die Spalten rechts neben die jeweiligen Monatsergebnisse zu schreiben (s. Bild), und wenn ja, wie viele Vorkommnisse pro Monat kann es maximal geben?
Servus
Userbild
AW: Zusammenführung von 2 Tabellen - komplex
26.01.2019 19:10:44
2
Hallo Herbert,
erstmal vielen Dank für deine Mühe - sieht super aus! Bis zu 5 Beschwerden können vorkommen.
Danke und beste Grüße!
Anzeige
AW: Zusammenführung von 2 Tabellen - komplex
27.01.2019 10:50:05
2
Hallo Markus,
ist das in der Originaldatei auch so wie in der Beispieldatei, dass es pro Land und Monat nur jeweils 1 Zeile gibt? Wenn ja, könnte man ja die "Beschwerden..." an die Tabelle 1 dranhängen! Was meinst du?
Servus
AW: Zusammenführung von 2 Tabellen - komplex
27.01.2019 11:00:46
2
Hallo Markus,
was ich noch vergessen habe ist, wie viele Länder in Frage kommen und wie heißen die?
Servus
AW: Zusammenführung von 2 Tabellen - komplex
28.01.2019 11:13:08
2
Hallo Herbert,
Danke für deine Frage. Erstelle es bitte erstmal für die 3 Beispiel-Länder. Den Rest bekomme ich dann schon hin.
Besten Dank dir!
AW: Zusammenführung von 2 Tabellen - komplex
28.01.2019 15:27:41
2
Hallo Markus,
anbei mein Vorschlag. Gib mir bitte bescheid, ob das so ist, wie du es brauchst.
https://www.herber.de/bbs/user/127211.xlsm
Servus
Anzeige
AW: Zusammenführung von 2 Tabellen - komplex
28.01.2019 23:21:57
2
Hallo Herbert,
sieht überragend aus - vielen Dank für deine Mühe!
Beste Grüße
AW: Zusammenführung von 2 Tabellen - komplex
29.01.2019 09:54:43
2
Hallo Markus,
bitte sehr, gerne geschehen! Es hat mich zwar sehr "gefuchst", aber ich wollte es unbedingt wissen, ob das so geht! Es ist auch für mich ein Erfolgserlebnis und damit eine echte "win-win"-Situation!
Servus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige