ich knobel seit längerem an einer Augabenstellung.
ich habe: - 80 Zeilen (Kunden-Nr.) - 140 Spalten (Artikel-Nr.) - im Schnittpunkt die jeweilige Bedarfsmenge
Im Prinzip gibt mir die Ausgangs-Liste alle Werte, diese möchte ich in die Ziel-Liste umwandeln, sodass ich 80x die selbe Kd.-Nr. untereinander mit den jeweils 140 unterschiedlichen Artikel-Nr. aufliste und somit 11.200 Zeilen erhalte
Ich habe ein kleineres Beispiel angehängt. diese Liste besteht aus - 10 Kunde - 4 Artikeln = also 40 Zeilen Endergebnis
hat hier jemand für mich eine Lösung?
Besten Dank schon jetzt für eure Unterstützung und Mühe
Du beziehst Dich mit der Formel auf die Zielliste. ... Coemms Vorschlag mit der Pivot ist hier zielführend und braucht nur ein Paar Klicks.
Hallo, jepp, das habe ich wohl, ich hatte mir nur die Datei angesehen... ... und dachte das man aus einer Ausgangsliste eine Zielliste erstellt... so mache ich das für gewöhnlich... ... aber wenn's so nicht gemeint war, auch gut...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Sub mach() Dim i As Long, j As Long, k As Long Dim AListe As Range Dim PaketA As Range Dim PaketB As Range
Set AListe = Range("A3:D10") Set PaketA = Range("F3:G6") Set PaketB = Range("H3:I7")
Columns("R:U").Clear j = 3 For i = 1 To AListe.Rows.Count If AListe.Cells(i, 3) = "Paket A" Then PaketA.Copy Cells(j, 20) For k = 1 To PaketA.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketA.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketA.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketA.Rows.Count Else PaketB.Copy Cells(j, 20) For k = 1 To PaketB.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketB.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketB.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketB.Rows.Count End If Next i
End Sub
Die Zielliste wird ab Zeile 3 (im Code: j = 3) und in die Spalten R-U (im Code werden diese gelöscht: Columns("R:U").Clear) erstellt
26.01.2016, 17:39 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2016, 18:38 von Aqui.)
Hallo Atilla,
besten Dank, habe ich getestet und es läuft.
Da ich nicht wirklich in VBA fit bin ... habe ich mir angeschaut was du gemacht hast und dann versucht ... es etwas anzupassen. Aber leider falsch, da es nicht funktioniert.
Kann ich beliebige ELSE einbauen? Dachte ich wandel es ab das es passt .. :22: aber :69:
meine Datei dazu im Anhang.
Code:
Sub mach() Dim i As Long, j As Long, k As Long Dim AListe As Range Dim PaketA As Range Dim PaketB As Range Dim PaketC As Range Dim PaketD As Range
Set AListe = Range("A3:D72") Set PaketA = Range("F3:G5") Set PaketB = Range("H3:I6") Set PaketC = Range("J3:K4") Set PaketD = Range("L3:M3")
Columns("R:U").Clear j = 3 For i = 1 To AListe.Rows.Count If AListe.Cells(i, 3) = "Paket A" Then PaketA.Copy Cells(j, 20) For k = 1 To PaketA.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketA.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketA.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketA.Rows.Count Else PaketB.Copy Cells(j, 20) For k = 1 To PaketB.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketB.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketB.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketB.Rows.Count Else PaketC.Copy Cells(j, 20) For k = 1 To PaketC.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketC.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketC.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketC.Rows.Count Else PaketD.Copy Cells(j, 20) For k = 1 To PaketD.Rows.Count Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketD.Cells(k, 2).Value Next k Range(Cells(j, 18), Cells(j + PaketD.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value j = j + PaketD.Rows.Count End If Next i
End Sub
vielleicht gibt es ja auch eine PowerPivot Möglichkeit?