Hallo zusammen,
mein Code soll Daten aus zwei Tabellenblättern vereinen. Dabei stehen in Tabellenblatt 1 die Länder welchem je jedes Produkt des zweiten Tabellenblatts aufführen soll. Dies wird auch gemacht jedoch nur für die ersten 47 Zeilen des Produktdatenblattes. Im Debuggermodus werden jedoch alle (104) Zeilen durchlaufen. Vielen Dank für eure Hilfe:
Sub CombineData()
' Deklaration der Variablen
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim i As Long
Dim j As Long
Dim x As Long
Dim k As Long
' Arbeitsmappe und Arbeitsblätter referenzieren
Set wb = ThisWorkbook
Set ws1 = wb.Worksheets("Länderzuordnung") ' Anpassen der Blattnamen
Set ws2 = wb.Worksheets("Neue Produkte_S.Verweis")
Set ws3 = wb.Worksheets("KPI Land_Prod. Bericht_VBA")
' Letzte Zeile in Tabelle 1 ermitteln
lastRow1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
' Letzte Zeile in Tabelle 2 ermitteln
lastRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
' Schleife über alle Zeilen in Tabelle 1 (ab Zeile 3)
For i = 3 To lastRow1
' Für jedes Land alle Produkte aufführen
For x = 1 To lastRow2
' Für akt Zeile Spalten A bis I füllen
For j = 1 To 9 ' Tabblatt Alle Länder
ws3.Cells((i - 3) * lastRow1 + x, j).Value = ws1.Cells(i, j).Value
Next j
' Für akt Zeile Spalten J bis L füllen
For k = 1 To 3 'Tabblatt Produkte Spalten A bis C
ws3.Cells((i - 3) * lastRow1 + x, 9 + k).Value = ws2.Cells(x + 1, k).Value
Next k
Next x
Next i
End Sub
|