Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeilen zusammenführen





Frage

Hallo Leute, ich habe eine ellenlange Liste in Excel mit den Spalten A – BU. Dabei stehen in der Spalte A Kundennummern, die allerdings mehrmals auftauchen (siehe Beispiel). In den folgenden Spalten B – BU können unterschiedliche Eintragungen gemacht werden. Nun möchte ich erreichen, dass ich pro Kundennummer eine Zeile bekomme, inklusive aller Daten, die in den Spalten B – BU eingetragen wurden. Beispiel: A-------B------C----…----BU 1----ABC------------------- 1----------------DEF 1--------------------------------XYZ 2 2----------------123 2----------------------------------4 Soll werden zu: A-------B------C----…----BU 1-----ABC-DEF---------XYZ 2--------------123-------------4 Wie kriege ich das am Besten hin? Tausend Dank für eure Hilfe!! VLG Gerrit

Antwort 1 von Saarbauer

Hallo,

aus meiner Sicht nur mit VBA.

Dazu noch eine Frage, kann es vorkommen, dass in einer Spalte zu einer Kundennummer zweimal Daten auftauchen

Gruß

Helmut

Antwort 2 von Gerritos

Hallo Helmut,

ja das kann vorkommen. Allerdings sind die Daten dann gleich.

Gruß, Gerrit

Antwort 3 von Saarbauer

Hallo,

versuch es mal mit dem Makro

Sub umsortieren()
letzteZeile = Range("A65536").End(xlUp).Row
For i = 2 To letzteZeile
For j = i + 1 To letzteZeile
If Range("A" & i).Value = Range("A" & j).Value Then
letzteSpalte = Range("IV" & j).End(xlToLeft).Column
For k = 2 To letzteSpalte
If Cells(j, k).Value <> "" Then
Cells(i, k).Value = Cells(j, k).Value
Range("A" & j & ": IV" & j).Select
Selection.Delete Shift:=xlUp
If k = letzteSpalte Then
j = j - 1
letzteZeile = letzteZeile - 1
End If
End If
Next k
End If
Next j
Next i
End Sub


Gruß

Helmut

Antwort 4 von Gerritos

Hi Helmut!

Das Prinzip klappt perfekt. Leider ist die Datei rund 6.000 Zeilen lang und irgendwann bricht der Marko ab und Excel friert ein :( Gibt's da noch ne Möglichkeit?

Danke im Voraus und schönes Wochenende!!

Gerrit

Antwort 5 von Saarbauer

Hallo,

im Moment, da ohne deine Tabelle nur schwer nachvollziebar ,keine richtige.

Hilfslösung

letzteZeile = Range("A65536").End(xlUp).Row

ersetzen durch

letzteZeile = 1000

und nach jedem Durchgang entsprechend erhöhen, z.B. auf 2000 usw.

Gruß

Helmut

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: