Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zusammenfügen von Zellinhalten





Frage

HAllo zusammen Ich würde für folgendes Problem eine Lösung ganz dringend benötigen. Und zwar habe ich im Excel in Spalte A immer den Gleichen Eintrag in mehreren Zeile. Ich möchte nun die Inhalte in Spalte B in eine Zelle zusammenfügen, wenn der Inhalt von Spalte A der Gleiche ist. Bei bedarf könnte ich Beispiel Datei Senden, dieht aer im Prinzip wie folgt aus: A B 1 xx qwe 2 xx asd 3 xx yxc 4 xx rtz 5 zz fgh 6 zz vbn Ergebnis: A B C 1 xx qwe qwe; asd; yxc ;rtz 2 xx asd 3 xx yxc 4 xx rtz 5 zz fgh fgh; vbn 6 zz vbn fg Hofi 2 3 4 5 6

Antwort 1 von piano

Hallo
Nur mit VBA. Willst Du?
mfg piano

Antwort 2 von Hofi76

würd mir sehr weiterhelfen

Hofi

Antwort 3 von piano

Hallo
Hier ist der Makro:
Sub Zusammenfügen()
Dim Zeile As Long, altWert As String, Ziel
Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.Value = "__________"
Zeile = 1
Do While Cells(Zeile, 1).Value <> ""
    If Cells(Zeile, 1).Value <> altWert Then
        If altWert <> "" Then
            Range(Ziel).Value = Left(Range(Ziel).Value, Len(Range(Ziel).Value) - 2)
        End If
        If Cells(Zeile, 1).Value = "__________" Then Exit Do
        altWert = Cells(Zeile, 1).Value
        Ziel = Cells(Zeile, 3).Address
        Range(Ziel).Value = ""
    End If
    Range(Ziel).Value = Range(Ziel).Value & Cells(Zeile, 2).Value & "; "
    Zeile = Zeile + 1
Loop
Selection.Value = ""
End Sub
 


Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Hofi76

Hallo piano

Danke für deine Hilfe
VBA Code funktioniert einwandfrei.

Eines vielleicht noch um die Anwendung zu verbessern möchte ich danach alle Zeilen löschen welche in Spalte c kein ergebnis haben, allerdings jene nicht die in Spalte B keinen inhalt haben

Hofi

Antwort 5 von piano

Hallo
Vor
Zitat:
End Sub
einfügen:
 Range("A1").Activate
Do Until ActiveCell.Value = ""
If ActiveCell.Offset(0, 1).Value <> "" And ActiveCell.Offset(0, 2).Value = "" Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop

Gruss piano

Antwort 6 von hofi76

DANKE für deine hilfe funktioniert einwandfrei

DANKE
Hofi

Antwort 7 von Hofi76

Hallo piano

Jetzt hätte doch noch eine Frage, bzw.eine erweiterung
Folgendes:
A B C
1 xx qwe 234
2 xx qwe 456
3 xx yxc 234
4 xx yxc 456
5 zz fgh 789
6 zz fgh 789

Ergebnis:
A B C D
1 xx qwe 234 234;456
2 xx qwe 456
3 xx yxc 234 234;456
4 xx yxc 456
5 zz qwe 789 789;879
6 zz qwe 879


Das heißt ich möchte eine weitere Gliederung einführen

mfg Hofi

Antwort 8 von piano

Das überlasse ich jetzt Deiner Kreativität:
Führe einen 2. Altwert (Altwert2) ein, vergleiche ihn mittels "and" mit "(Zeile, 1).Value" und ändere die Zielzellen-Spalten entsprechend.
Gruss piano

Antwort 9 von Hofi76

Habe ich hinbekommen
Noch ne frage: W
ie kann ich in der Zielzelle anstelle von ";" als Trennung einen Zeilensprung inerhalb der Zelle machen?

Antwort 10 von piano

Hallo
 & vbLf
statt
& "; " 


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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: