Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
600to604
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
600to604
600to604
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Zeilenumbruch aus TextBox stört
18.04.2005 19:45:55
Herbert
Hallo Forum,
ich habe ein für mich derzeit unlösbares Problem und auch in der Recherche keine passende Antwort gefunden.
Aus einer TextBox (UserForm) schreibe ich Werte in eine Zelle. Da in der TextBox mit Shift+Enter Zeilenwechsel eingefügt werden, sind in der Zelle diese Umbrüche als Quadrate sichtbar und werden leider auch gedruckt.
Ich habe versucht, testweise mit

Sub TextSauber()
Selection.Replace What:=Chr(13), Replacement:=" "
End Sub

"Ordnung" zu schaffen. Das klappt eigentlich auch - die Kästchen sind weg, der Umbruch bleibt (da gibt es ja noch chr(10)).
Nur leider scheint es bei dieser Vorgehensweise eine Begrenzug der Textlänge zu geben!?
Hatte ca. 1050 Zeichen mit Umbrüchen - Ergebnis: Fehlermeldung "Formel zu lang".
Bei ca. 800 Zeichen klappte es.
Was kann ich machen?
Danke im Voraus
Gruß Herbert
Sorry - meinen Level gibt es nicht - darum der angegebene.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenumbruch aus TextBox stört
18.04.2005 21:19:21
Luc
Hallo Herbert,
ja, du hast recht, es gibt Textlängebeschränkungen (unterschiedlicher Art). Wenn du einen Text originär aus einer Zelle (wahrscheinlich auch aus einer Textbox) ausliest, darf der wesentlich länger sein als ein Text, der mittels eines Ausdrucks (Formel) an eine Function/Funktion übergeben wird.
Du könntest dich damit behelfen, dass du...
1. ...für die Zielzelle Zeilenumbruch einstellst,
2. ...das Replace doppelst: x=Replace(Replace(selection.text,Chr(13)," "),Chr(10)," "),
3. ...den Text direkt aus der Zielzelle nochmals ausliest, analog 2. behandelst und wieder in die Zielzelle speicherst,
4. ...den Text direkt in eine Hilfszelle und eine Verarbeitungsformel mit Bezug auf die Hilfszelle in die Zielzelle speicherst:
zielzelle.formula="=SUBSTITUTE(SUBSTITUTE(hilfszellbezug,Chr(13),"" ""),Chr(10),"" "")"
Wenn das alles wegen immer noch zu großer Textlänge nicht klappt, musst du den Text portionsweise aus der Textbox auslesen, indem du zum Textbox-Auslesen die Characters-Methode unter Angabe von Start:=... und Length:=... wählst.
Gruß Luc :-?
Anzeige
AW: Zeilenumbruch aus TextBox stört
18.04.2005 21:28:36
MichaV
Hi,
z.B. lasse VBA rechnen, nicht Excel:


      
While Not InStr(strText, "a") = 0
  strText = Left(strText, InStr(strText, "a") - 1) & Right(strText, Len(strText) - InStr(strText, "a"))
Wend 


Anstelle "a" solltest Du natürlich CHR(xx) einsetzen.
Gruß- Micha
PS: Rückmeldung wäre nett
Anzeige
AW: Zeilenumbruch aus TextBox stört
18.04.2005 21:49:20
Herbert
Hallo Luc, hallo Micha,
danke für die Tipps. Muss das erst einmal verarbeiten und testen. Melde mich dann hoffentlich mit einer Erfolgsmeldung.
Ach so - die Umbrüche in der Zelle sind schon gewollt, halt nur mit Chr(10) und ohne Chr(13). Ich glaube nämlich, dass Shift+Enter beide Zeichen erzeugt, die dann das Kästchen darstellen.
Gruß Herbert
AW: Zeilenumbruch aus TextBox stört
18.04.2005 21:57:36
MichaV
Hi,
das ist so. Kannst Du leicht prüfen:
txt=textbox1.text 'kurzer Text mit Zeilenumbruch
For i = 1 To Len(txt)
Cells(i, 1).Value = Asc(Mid(txt, i, 1))
Next i
Gruß- Micha
AW: Zeilenumbruch aus TextBox stört
18.04.2005 22:43:27
Herbert
Hallo Micha,
irgendwie verstehe ich die Welt nicht.
Das steht in Zelle G6 (hinter "Text" ist jeweils ein Kästchen sichtbar - hier leider nicht zu sehen) und darunter dann der ASCII-Code nach einem Durchlauf - als ohne CHR(13).
Das heißt, der Code

Sub TextSauber()
Dim strText As String
Dim i As Long
'Range("G6").Replace What:=Chr(13), Replacement:="" ' Damit verschwinden die Kästchen
strText = Range("G6").Value 'textbox1.Text 'kurzer Text mit Zeilenumbruch
While Not InStr(strText, Chr(13)) = 0
MsgBox InStr(strText, Chr(13))
strText = Left(strText, InStr(strText, Chr(13)) - 1) & Right(strText, Len(strText) - InStr(strText, Chr(13)))
Wend
MsgBox InStr(strText, Chr(13))  ' Hier meldet er dann 0
For i = 1 To Len(strText)
Cells(7 + i, 7).Value = Asc(Mid(strText, i, 1))
Next i
End Sub

nimmt das Zeichen Chr(13) auch weg - lt. Listing ;-)
Lass ich den Code nochmals laufen, findet er wieder Chr(13) und die blöden Kästchen bleiben.
Hiermit Range("G6").Replace What:=Chr(13), Replacement:="" verschwinden sie wirklich.
Was ist da los?
Gruß Herbert
Anzeige
AW: Zeilenumbruch aus TextBox stört
18.04.2005 22:59:01
Luc
Hallo Herbert,
ich will mal nicht hoffen, dass sich dein 2.Durchlauf wieder auf die gleiche Ausgangssituation, d.h. die Textbox, bezieht, sondern du den bereits veränderten Text als Input des 2.Laufes benutzt. Instr ist in dieser Form eigentlich zuverlässig!
Gruß Luc :-?
AW: Zeilenumbruch aus TextBox stört
18.04.2005 23:02:37
MichaV
Hi,
Du solltest den "gesäuberten" Wert natürlich auch wieder in die Zelle schreiben. Sonst geht er am Ende das Makros verloren. Beim Schreiben in die Zelle siehst Du dann, daß das Entfernen von Chr(13) völlig ausreicht, denn das ist der Zeilenumbruch.
Also vor dem End Sub noch ein Range("G6").value=strText einfügen.
Gruß- Micha
Anzeige
AW: Zeilenumbruch aus TextBox stört
18.04.2005 23:09:10
Herbert
Hallo Micha und Luc,
genau, das war jetzt der entscheidende Schritt - funzt jetzt.
Danke und Gruß Herbert

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige