Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textbox Text auf Zellen aufteilen

Textbox Text auf Zellen aufteilen
07.01.2024 09:29:58
Mirel
Guten Morgen,
ich versuche den Text einer Userform TextBox auf Zellen auf zu teilen.
Leider wird der Text nicht auf die Zeilen 1 bis 4 aufgeteilt.
Danke!
Gruß
Mirel
https://www.herber.de/bbs/user/165942.xlsm

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Text auf Zellen aufteilen
07.01.2024 10:17:43
volti
Hallo Mirel,

der Text wird nicht umgebrochen, weil keine Umbruchzeichen vbCR bzw. vbLF im Text vorhanden sind. Die Textbox macht eine Autoformatierung ohne diese Zeichen.

Du könntest Deinen Text anhand des Punktes umbrechen oder sonst wie.

Tipp: Die Ausgabe des Textes kannst Du anstelle der Schleife auch mit einem Befehl bewerkstelligen.

Code:


Private Sub CommandButton1_Click() Dim sArr() As String sArr = Split(TextBox1.Text, ". ") Cells(1, 2).Resize(UBound(sArr) + 1, 1) = Application.Transpose(sArr) End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: Textbox Text auf Zellen aufteilen
07.01.2024 10:38:45
Alwin Weisangler
Hallo Mirel,
WordWrap =True setzt automatisch den Zeilenumbruch ohne Umbruchzeichen.
Als kann es so nicht funktionieren.
Man kann es über Umwege er Tricksen.
Berechne entsprechend der Schriftgröße die mögliche Anzahl der Zeichen zur Breite der Textbox.
Dann zerlege den String mit dem Seperator " " (Leerzeichen).
Dann setze den String wieder mit der Grenze der maximalen Zeichenzahl pro Zeile zusammen.
Beispielhaft ohne Berechnung der Zeichenzahl entsprechend der Textboxbreite:


Private Sub CommandButton1_Click()
Dim arr, arrOut(), i&, j&, var$, iMax&: iMax = 41
arr = Split(TextBox1.Text, " ")

For i = LBound(arr) To UBound(arr)
If Len(var & arr(i)) = iMax Then
var = var & arr(i) & " "
Else
j = j + 1
ReDim Preserve arrOut(1 To j)
arrOut(j) = var
var = ""
End If
Next i
End Sub


Gruß Uwe
Anzeige
AW: Textbox Text auf Zellen aufteilen
07.01.2024 11:53:33
Mirel
Danke!
Werde mir die Code mal vornehmen.
Gruß
Mirel
AW: Textbox Text auf Zellen aufteilen
07.01.2024 11:04:15
Alwin Weisangler
Hallo,
@ Volti hatte den Fehler bemerkt.
Es muss i-1 im Else Zweig korrigiert werden.
Ich hatte aber auch noch den Schluss übergangen.
Mein Machwerk wäre jetzt dahingehend korrigiert.


Private Sub CommandButton1_Click()
Dim arr, arrOut(), i&, j&, var$, iMax&: iMax = TextBox1.Width / TextBox1.Font.Size * 2.1
arr = Split(TextBox1.Text, " ")

For i = LBound(arr) To UBound(arr)
If Len(var & arr(i)) = iMax Then
var = var & arr(i) & " "
Else
j = j + 1
ReDim Preserve arrOut(1 To j)
arrOut(j) = var
var = ""
i = i - 1
End If
Next i
j = j + 1
ReDim Preserve arrOut(1 To j)
arrOut(j) = arr(UBound(arr))
End Sub

Gruß Uwe
Anzeige
AW: Textbox Text auf Zellen aufteilen
07.01.2024 11:15:51
volti
Hallo,

an und für sich ein gangbarer Weg. Wenn der Text konstant vorliegt kann man es austüfteln und es klappt so.

Im Worstcase hängt aber viel an umfangreichen i, j,r als Schmalbuchstaben und umfangreichen Großbuchstaben bzw. m, w als Breitbuchstaben.

Ich hatte mich schon öfters mit diesem Thema beschäftigt, bin aber letztendlich für eine gesicherte Ausgabe eines jeglichen Textes oft gescheitert.

Auch z.B. formatierten Text in eine Msgbox zu bringen, basiert ja im Grunde auf dem gleichen Verfahren...
Das habe ich jetzt anders gelöst. (gehört hier aber nicht hin)
https://www.clever-excel-forum.de/Thread-Text-tabelliert-in-MsgBox-anzeigen

Gruß
KH
Anzeige
AW: Textbox Text auf Zellen aufteilen
07.01.2024 10:28:23
volti
Nachtrag:

In diesem Fall sollte die Ausgabe doch per Schleife erfolgen, da ja die Punkte weg sind und wieder angefügt werden müssen....

Code:


Private Sub CommandButton1_Click() Dim sArr() As String, i As Integer sArr = Split(TextBox1.Text, ". ") For i = 0 To UBound(sArr) Cells(i + 1, 2).Value = sArr(i) & IIf(i = UBound(sArr), "", ".") Next i End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige