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

VBA Zeilen zusammenführen

VBA Zeilen zusammenführen
28.12.2016 10:30:18
Björn
Hallo zusammen,
nachdem ihr mir in 2014 bereits sehr geholfen habt, hoffe ich, dass auch diesmal ein VBA Profi mir helfen kann.
Ich möchte gerne meinen Onlineshop befüllen. Hierzu habe ich eine Tabelle mit über 90.000 Zeilen und 80 Spalten erhalten, welche ich so nicht importieren kann. Ich habe mal eine Beispieldatei erstellt:
https://www.herber.de/bbs/user/110213.xlsx
Es gibt den Artikel A1, diesen gibt es in den Farben Weiß sowie Schwarz (je nach Artikel bis zu 40 Farben) und den in der Spalte D genannten Größen (je nach Artikel auch andere Größen Möglich). Alle anderen Spalten sind identisch.
Ziel ist es, die Spalten 2 - 9 /10 - 17 / 18 - 25 / 26 - 33 so zusammen zu führen, dass in Spalte C nur die Farbe steht und in Spalte D die jeweiligen Größen Komma getrennt.
In der Beispieldaten Spalte J - P ist ein Muster, wie es später aussehen soll. Schön wäre es, wenn die Daten in ein neues Blatt geschrieben werden.
Hat jemand eine Idee und kann helfen?
Vielen lieben Dank!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen zusammenführen
28.12.2016 15:21:22
Michael
Hi Björn,
die Geschichte ist mit einem sogenannten dictionary relativ einfach lösbar; mir ist allerdings Deine Frage insofern unklar, als Du einerseits von 80 Spalten sprichst, andererseits von 2-9/10-17 usw. - beide Strukturen sind nicht in der Beispieldatei enthalten, so daß mir unklar ist, was nun effektiv ausgewertet werden soll.
Schöne Grüße,
Michael
AW: VBA Zeilen zusammenführen
28.12.2016 16:28:21
Björn
Hallo Michael,
vielen Dank für Deine Antwort.
Um die Datei etwas schlanker und übersichtlicher zu machen, habe ich nur eine Auswahl an Spalten in die Beispieldatei übernommen.
Ich sehe grade den Fehler. "Ziel ist es, die Spalten..." ich meinte Zeilen, nicht Spalten. Deshalb passt die Beispieldatei auch nicht. :-(
Spalten A - G sind die Beispieldaten. In der Originaldatei sind, wie beschrieben, ca. 80 Spalten. Die enthaltenen Daten darin sind identisch.
In Spalte J - P ist das Beispiel, was aus A-G werden soll.
Wenn Zelle A1 & C1 gleich sind, dann schreibe in D Komma getrennt so lange die Größe, bis A1 & C1 nicht mehr identisch sind. Danach beginne eine neue Zeile.
1000 Dank
Björn
Anzeige
AW: VBA Zeilen zusammenführen
28.12.2016 19:42:49
Dieter
Hallo Björn,
ich denke, du kannst das mit dem folgenden Programm machen:

Sub Zusammenführen()
Dim kumulGrößen As String
Dim letzteZeileQ As Long
Dim vorhArtikel As String
Dim vorhFarbe As String
Dim wb As Workbook
Dim wsQ As Worksheet
Dim wsZ As Worksheet
Dim zeileQ As Long
Dim zeileZ As Long
Set wb = ThisWorkbook
Set wsQ = wb.Worksheets("Quelle")
Set wsZ = wb.Worksheets("Ziel")
wsZ.UsedRange.ClearContents
wsQ.Rows(1).Copy Destination:=wsZ.Rows(1)
letzteZeileQ = wsQ.Cells(wsQ.Rows.Count, "A").End(xlUp).Row
zeileZ = 2
vorhArtikel = wsQ.Cells(2, "A")
vorhFarbe = wsQ.Cells(2, "C")
kumulGrößen = wsQ.Cells(2, "D")
For zeileQ = 3 To letzteZeileQ + 1
If wsQ.Cells(zeileQ, "A")  vorhArtikel Or _
wsQ.Cells(zeileQ, "C")  vorhFarbe Then
' Artikel oder Farbwechsel
wsQ.Rows(zeileQ - 1).Copy Destination:=wsZ.Cells(zeileZ, "A")
wsZ.Cells(zeileZ, "D") = kumulGrößen
zeileZ = zeileZ + 1
kumulGrößen = wsQ.Cells(zeileQ, "D")
vorhArtikel = wsQ.Cells(zeileQ, "A")
vorhFarbe = wsQ.Cells(zeileQ, "C")
Else
kumulGrößen = kumulGrößen & "," & wsQ.Cells(zeileQ, "D")
End If
Next zeileQ
wsZ.Activate
End Sub

Ggf. musst du die Blattnamen "Quelle" und "Ziel" anpassen.
Viele Grüße
Dieter
Anzeige
AW: VBA Zeilen zusammenführen
29.12.2016 12:49:48
Björn
Hallo Dieter,
was soll ich sagen ... vielen lieben Dank! Funktioniert super und das Ergebnis ist das was ich mir erhofft habe. Ich hatte schon Sorge alle Zeilen manuell bearbeiten zu müssen.
Hat mir jede Menge Arbeit erspart.
Viele grüße
Björn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige