Hallo
hier mit Automatik für die letzte Zeile. In den ersten Antworten ist übrigens diese Zeile
Cells(a + 1, 1) & „,“ & _
verschütt gegangen.
*******************************
Sub do18csv()
Dim a As Long, b As Long, letzteZeile As Long
'Startzeile für Zusammenfassung
b = 2
'letzte Zeile in Spalte A einlesen
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row
'ab Zeile 2
For a = 2 To letzteZeile Step 19
Cells(b, 3) = Cells(a, 1) & „,“ & _
Cells(a + 1, 1) & „,“ & _
Cells(a + 2, 1) & „,“ & _
Cells(a + 3, 1) & „,“ & _
Cells(a + 4, 1) & „,“ & _
Cells(a + 5, 1) & „,“ & _
Cells(a + 6, 1) & „,“ & _
Cells(a + 7, 1) & „,“ & _
Cells(a + 8, 1) & „,“ & _
Cells(a + 9, 1) & „,“ & _
Cells(a + 10, 1) & „,“ & _
Cells(a + 11, 1) & „,“ & _
Cells(a + 12, 1) & „,“ & _
Cells(a + 13, 1) & „,“ & _
Cells(a + 14, 1) & „,“ & _
Cells(a + 15, 1) & „,“ & _
Cells(a + 16, 1) & „,“ & _
Cells(a + 17, 1)
'Zielzeile 1 hoch zählen
b = b + 1
Next a
End Sub
********************************
Reinhard hat eine bessere Lösung geschrieben, ich habe sie kommentiert
und hoffentlich in Deinem Sinne angepasst.
****************************************************
Sub tt()
Dim ZeiA As Long, ZeiB As Long, Z As Long, Zmax As Long
Dim i As Long, imax As Long, ZSp As Integer
'Startzeile in Zielspalte für Ergebnis
ZeiB = 2
'Zielspalte bestimmen
ZSp = 3
'Inhalte in Zielspalte leeren
Columns(ZSp).ClearContents
'letzte Zeile in Spalte A einlesen
Zmax = Cells(Rows.Count, 1).End(xlUp).Row
'äußere Schleife für 18er Blöcke
For ZeiA = 2 To Zmax Step 19
'innere Schleife für jeden 18er Block
For Z = 0 To 17
'solange letzte ZeilenNr in Spalte A > als Zeilen im 18er Block
If Zmax >= ZeiA + Z Then
'hänge in der Zielzelle an den aktuellen Zellwert den nächsten Wert aus Spalte A + Kommma
Cells(ZeiB, ZSp) = Cells(ZeiB, ZSp) & Cells(ZeiA + Z, 1) & „,“
End If
Next Z
'Zielzeile nach jeder Schleife 1 hochzählen
ZeiB = ZeiB + 1
Next ZeiA
'abschließend das letzte Komma im Zielbereich entfernen (Länge -1 Zeichen)
'letzte Zeile in Zielspalte 3 = „C“
imax = Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To imax
Cells(i, 3) = Left(Cells(i, 3), (Len(Cells(i, 3)) - 1))
Next i
End Sub
**************************************************************
MfG