UserForm Textfeld Zeilenumbruch in Zelle
#1
Hallo Leute,

ich bin auf der suche nach einr Adequaten Lösung für ein Problem.

Ausgangslage:
Ich habe in meiner Exceltabelle eine große Zelle wo ich eine mehrzeilige Artikelbezichnung eintragen kann.
Die Artikelbezeichnung darf jedoch je Zele die Zeichenlänge von 70 nicht überschreiten. Ich habe daher versucht dies über einen Editor zu lösen.

Als Editor dient eine Userform mit Textbox. Ich habe die Textbox "soweit ich weiß" korrekt eingestellt was Zeilenumbrüche angeht.
EnterKeyBehavior=True, Multiline=True

Nun zum Schwerpunkt.
Ich möchte gerne das, entweder beim Schreiben in die Textbox oder spät. beim Einfügen des Textes in die Zelle, ein Automatischer Zeilenumbruch nach 70 Zeichen gesetzt wird.
Sobald ein Wort die maximale Anzahl der Zeichnen pro Zeile überschreitet soll der Umbruch bereits vor dem Wort stattfinden. Qausi so, das die Maximale Länge nicht überschritten werden kann.

Kennt Ihr da eine Lösung?

Vielen lieben Dank im Voraus
Top
#2
Moin!
Adäquater wäre es, die Zielspalte auf eine Breite von 70 zu setzen und den Zeilenumbruch zu aktivieren.
(schließlich bedeutet Breite 70, dass ungefähr 70 Zeichen der Standardschriftart hinein passen)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Marko120586
Top
#3
Schau mal hier, das sollte genau das sein, was du benötigst.[url=http://www.office-loesung.de/ftopic523139_0_0_asc.php][/url]
Schöne Grüße
Berni
Top
#4
(08.01.2021, 14:42)RPP63 schrieb: Moin!
Adäquater wäre es, die Zielspalte auf eine Breite von 70 zu setzen und den Zeilenumbruch zu aktivieren.
(schließlich bedeutet Breite 70, dass ungefähr 70 Zeichen der Standardschriftart hinein passen)

Gruß Ralf
Vielen Dank für die Antort.
Dies wäre dann jedoch (soweit ich weiß Wink) nur ein "Automatischer Umbruch" welcher bei CopyPaste in andere programme hinfällig wäre.
Ich muss den Text aber in andere Programme übertragen können bei bedarf, daher die Maximale Zeichnanzahl je Zeile.
Aber trotzdem nochmal Danke für die Idee
Top
#5
Dann hast Du ja einen prima Link von Berni erhalten.

Wie so häufig, ging in dem Thread die imo beste Lösung unter:
Losgehts aka Ulrich schrieb:

Sub TEST()
  Const DerText As String = "Über den leeren nächtigen Bäumen Hängen die schmächtigen Sterne, umdrängen den Mond im Kreise. Sehnsüchte leben auch in den prächtigen Himmelsräumen, und auch Gestirne kommen aus ihrem Geleise. Keine Sonne, kein Stein kann sich der Sehnsucht erwehren ..."
  Debug.Print MachUmbruch(DerText, vbNewLine)      'ins Direktfenster (Strg + G) schreiben
End Sub


Function MachUmbruch(ByVal strText As String, ByVal strUmbruch As String, Optional Laenge As Long = 75) As String
'Ulrich, April 2012
Dim strA As String, i As Long
strText = Trim(strText)
Do While Len(strText) > Laenge
  i = Laenge
  Do While Mid(strText, Sgn(i) * i, 1) <> " "
      i = i - 1
      If i = 0 Then i = i - 1
      If -1 * i > Len(strText) Then GoTo ENDE
  Loop
  strA = strA & Mid(strText, 1, Sgn(i) * i - 1) & strUmbruch
  strText = Mid(strText, Sgn(i) * i + 1)
Loop
ENDE:
strA = strA & strText
MachUmbruch = strA
End Function
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Marko120586
Top
#6
Super, vielen lieben Dank euch allen.
Das macht echt Spaß
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste