Multiline-TextBox splitten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Multiline-TextBox splitten von: Walter
Geschrieben am: 06.02.2005 10:45:48

Hallo liebe Excel-Freunde,
ich möchte den Text aus einer Multiline-TextBox in einzelne Zeilen einer Tabelle wiedergeben, und zwar so, wie es in der Multiline-TextBox dargestellt ist. Ich bekomme es mit der Silbentrennung nicht hin. Kann mir einer von Euch helfen?
Walter

Bild


Betrifft: AW: Multiline-TextBox splitten von: Josef Ehrensberger
Geschrieben am: 06.02.2005 10:54:31

Hallo Walter!

Eine Möglichkeit.

Private Sub CommandButton1_Click()
Dim tmp As Variant
'trägt den text ab "A1" ein
tmp = Split(TextBox1, vbCrLf)
tmp = Application.Transpose(tmp)
Range(Cells(1, 1), Cells(UBound(tmp, 1), 1)) = tmp
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Multiline-TextBox splitten von: Walter
Geschrieben am: 07.02.2005 09:12:53

Hallo Sepp,
so meinte ich das nicht. Ich möchte nicht die Einträge einer MultiLine-TextBox in mehreren Zellen duplizieren sondern den Text aus der TextBox in mehreren Zellen splitten.
Die Zellen dürfen z.B. nicht mehr als 30 Zeichen enthalten. Wenn z.B. die Anzahl der Zeichen in der TextBox 65 zeichen enthält möchte ich diesen Text verteilt in 3 Zellen haben, wobei Wörter nicht aussereinander gerissen werden sollten.
Walter


Bild


Betrifft: AW: Multiline-TextBox splitten von: Josef Ehrensberger
Geschrieben am: 07.02.2005 13:21:53

Hallo Walter!

Da hab' ich dich falsch verstanden!

Das sollte es tun.



      
'UserForm
Private Sub CommandButton1_Click()

Dim arr As Variant

arr = Split(breakText(TextBox1, 30), vbLf)   
'Parameter (Text, länge)

Range(Cells(1, 1), Cells(
UBound(arr, 1) + 1, 1)) = Application.Transpose(arr)

End Sub

'allgemeines Modul
Public Function breakText(ByVal text As StringByVal länge As IntegerAs String
Dim tmp As String, str As String
Dim lenT As Integer, i As Integer, n As Integer
lenT = Len(text)
n = 1
i = 1
   
Do
   tmp = Mid(text, i, länge)
      
If lenT - i >= länge Then
      n = Len(tmp) - InStr(1, StrReverse(tmp), 
" ") + 1
      
Else
      n = Len(tmp)
      
End If
   str = str & Trim(Left(tmp, n)) & vbLf
   i = i + n
   
Loop While i < lenT
breakText = Left(str, Len(str) - 1)
End Function 


     Code eingefügt mit Syntaxhighlighter 3.0



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Multiline-TextBox splitten von: Walter
Geschrieben am: 07.02.2005 17:54:54

Hallo Sepp,
genau das ist es. Ich danke Dir sehr herzlich.
Walter


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Multiline-TextBox splitten"