ich möchte gern die Inhalte mehrer Zellen in Spalte B in eine Zelle per Makro zusammenfassen. Das Zusammenfassen selbst funktionert bereits, allerdings soll er das nur solange machen, bis in Spalte A wieder ein Wert erscheint.
Ich hab mal eine kleine Tabelle vorbereitet, die dies darstellt:
https://www.herber.de/bbs/user/34093.xls
Nachfolgender Code bewirkt bereits das Verketten. Ich benötige also nur noch den Code für die Anweisung, dass er die zellen solange zusammenfassen soll, bis in Spalte A wieder ein Wert steht und dann wieder eine neue Zelle in B anlegt.
Ich hoffe ich hab mich verständlich genug ausgedrückt.
Viele Grüße, Sebastian
*************************************
Option Explicit
Sub Verketten()
Dim varTemp As Variant
Dim lngLast As Long
Dim intCol As Integer
For intCol = 1 To 3 ' Für die Spalten 1 bis 3
lngLast = Cells(Rows.Count, intCol).End(xlUp).Row
If lngLast > 1 Then
varTemp = Range(Cells(1, intCol), Cells(lngLast, intCol))
Range(Cells(1, intCol), Cells(lngLast, intCol)).ClearContents
Cells(1, intCol) = Join2(varTemp)
End If
Next
End Sub
Function Join2(ByRef field As Variant, Optional ByVal delimit As String = vbNullString) As String
'zweidimensionales array zu string umwandeln
Dim n As Long, m As Long
Dim temp As String
For n = LBound(field, 2) To UBound(field, 2)
For m = LBound(field, 1) To UBound(field, 1)
temp = temp & field(m, n) & vbLf & delimit
Next
Next
Join2 = Left(temp, Len(temp) - Len(delimit))
End Function