Hallo Zusammen,
vorab...ich areite erst seit einer woche mit vba. verzeiiht mir bitte unwissenheit
ich habe folgendes problem...ich habe eine textbox in der, der benutzer willkuerlich text eintippen kann. mit zeilenumbruch und co. dieser text wird anschliessend in ein anderes programm kopiert, welches aber eine begrenzte zeilenlaenge hat. is die zeile zu lang wird sie einfach abgeschnitten und der text is im eimer...nun will ich die textbox so formatieren, dass beim verlassen der text automatisch richtig formatiert wird. stosse aber an die grenzen meiner leiehnhaften faehigkeiten...
hatte jemand schon mal damit zu tun? als inspiration poste ich mal meinen code:
Vielen Dank schon mal fuer eure Hilfe
Pinsch
vorab...ich areite erst seit einer woche mit vba. verzeiiht mir bitte unwissenheit
ich habe folgendes problem...ich habe eine textbox in der, der benutzer willkuerlich text eintippen kann. mit zeilenumbruch und co. dieser text wird anschliessend in ein anderes programm kopiert, welches aber eine begrenzte zeilenlaenge hat. is die zeile zu lang wird sie einfach abgeschnitten und der text is im eimer...nun will ich die textbox so formatieren, dass beim verlassen der text automatisch richtig formatiert wird. stosse aber an die grenzen meiner leiehnhaften faehigkeiten...
hatte jemand schon mal damit zu tun? als inspiration poste ich mal meinen code:
Visual Basic-Quellcode
- Function StringUmdrehen(ByVal Text As String) As String
- Dim Buffer As String
- Dim n As Integer
- Buffer = ""
- For n = Len(Text) To 1 Step -1
- Buffer = Buffer + Mid$(Text, n, 1)
- Next n
- StringUmdrehen = Buffer
- End Function
- Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- Dim lastspace As Integer, actpos As Integer, i2 As Integer, wrap As Integer, space As Integer, ll As Integer
- Dim oldt As String, newt As String, restt As String, lastchar As String, rnewt As String
- Dim LineLength As Integer
- LineLength = 10
- restt = TextBox1.Text
- For i = LineLength To Len(TextBox1.Text) Step LineLength
- newt = Left(restt, LineLength)
- wrap = InStr(newt, vbCrLf)
- If wrap > LineLength Or wrap = 0 Then
- lastchar = Right(newt, 1)
- If lastchar = " " Then
- oldt = oldt & newt & vbCrLf
- actpos = Len(TextBox1.Text) - i
- restt = Right(restt, actpos)
- Else
- rnewt = StringUmdrehen(newt)
- space = InStr(rnewt, " ")
- ll = LineLength - space
- newt = Left(restt, ll)
- oldt = old & newt & vbCrLf
- actpos = Len(TextBox1.Text) - i - space
- restt = Right(restt, actpos)
- End If
- Else
- oldt = oldt & newt
- i2 = i / LineLength
- actpos = Len(TextBox1.Text) - i2 * LineLength
- restt = Right(restt, actpos)
- End If
- Next i
- TextBox1.Text = oldt & restt
- End Sub
Vielen Dank schon mal fuer eure Hilfe
Pinsch