Habe da eine Kleinigkeit ausprobiert,
Funktioniert aber so nur bis Max 240 Zeichen.
Aber als Inspiration kann dies wohl dienen.
Keine Frage, dass es mit einer anderen Schleifenform durchaus schlanker zu machen ist.
Sub Test()
Dim LaengeTextTemp As Integer
Dim TextTemp As String
Dim TextTemp2 As String
Dim TextTemp3 As String
Dim PosLetztesLeerz As Integer
Dim PosLetztesLeerzTemp As Integer
Dim ZaehlerLeerz As Integer
Dim ZaehlerLeerz2 As Integer
LaengeTextTemp = Len(ActiveWorkbook.Worksheets("Tabelle1").Cells(1, 2).Value)
If LaengeTextTemp > 80 Then
TextTemp = ActiveWorkbook.Worksheets("Tabelle1").Cells(1, 2).Value
For ZaehlerLeerz = 1 To (LaengeTextTemp - 1)
PosLetztesLeerzTemp = InStr(ZaehlerLeerz, TextTemp, " ")
If PosLetztesLeerzTemp < 80 Then
PosLetztesLeerz = PosLetztesLeerzTemp
Else
Exit For
End If
Next ZaehlerLeerz
TextTemp2 = Right(TextTemp, LaengeTextTemp - PosLetztesLeerz)
TextTemp = Left(TextTemp, PosLetztesLeerz)
' TextTemp2 = Replace(TextTemp2, " ", "", 1, 1)
If Len(TextTemp2) < 80 Then
Sheets("Tabelle1").Cells(1, 3).Value = TextTemp & vbCrLf & TextTemp2
Else
For ZaehlerLeerz2 = 1 To (Len(TextTemp2) - 1)
PosLetztesLeerzTemp = InStr(ZaehlerLeerz2, TextTemp2, " ")
If PosLetztesLeerzTemp < 80 Then
PosLetztesLeerz = PosLetztesLeerzTemp
Else
Exit For
End If
Next ZaehlerLeerz2
TextTemp3 = Right(TextTemp2, Len(TextTemp2) - PosLetztesLeerz)
TextTemp2 = Left(TextTemp2, PosLetztesLeerz)
Sheets("Tabelle1").Cells(1, 3).Value = TextTemp & vbCrLf & TextTemp2 & vbCrLf & TextTemp3
End If
End If
End Sub
Ich habe in diesem Fall aus den Text aus Zelle "B1" genommen und bis zu 3zeilig in C1 kopiert.
Gruß
Andreas
|