Das Archiv des Excel-Forums

Multiline Textbox

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

Betrifft: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 09.07.2008 21:52:14

Hallo,
Ich benutze in einem Project eine Excel- Multiline Textbox. Der Inhelt soll dann in ein Tabellenformular eingetragen werden.
Zur Zeit zerlege ich den langen Text in definierte Längen und trage Ihn Zeile für Zeile in die Tabelle ein. Nun habe ich im Internet Hinweise und Teilcode gefunden wie man die Zeilen einzeln aus der Textbox auslesen kann. Ich habe das mal probiert, bin aber nicht klargekommen. Kann mich da jemand mal durchsprechen?
Die Textbox1 steht beispielsweise in der Userform1.
Gruß
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: andy027
Geschrieben am: 09.07.2008 22:06:16
Hallo Bernd,
Deine Frage zur Textbox kann ich Dir nicht aber auf Anhieb beantworten, aber ich hätte einen Alternativ-vorschlag: Wie wärs wenn Du in der userform eine Listbox (oder auch Listenfeld) statt einer Textbox verwendest. Da kann man relativ einfach per VBA reinschreiben oder auch den kompletten Inhalt z.B. in eine txt-Datei exportieren. Ich verwende eine Listbox in einer userform als Ausgabe-Medium, das dem Nutzer diverse Informationen anzeigt. Wäre das was für Dich? Falls ja, kann ich gerne den entsprechenden Code ins Forum stellen.
Gruß,
Andreas B.

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 10.07.2008 08:18:44
Hallo Andreas,
Eine Listbox wollte ich nicht, den reingeschrieben wird über die Tastatur. Der Inhalt der Textbox soll dann übernommen werden.
Gruß
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: Daniel
Geschrieben am: 09.07.2008 22:17:03
Hi
lade doch mal eine Beispieldatei und den Code, den du nicht verstehst, hoch.
dann kann man leichter was erklären.
Gruß, Daniel

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 10.07.2008 08:32:39
https://www.herber.de/bbs/user/53707.xls
Hallo Daniel,
danke erst einmal für Deine Antwort.
Ich habe den Anfang meiner Bemühungen malhochgeladen.
Eine Userform mit Textbox und einem Eintragbutton, beim dem sich der inhalt der Textbox beispielsweise in die Spalte A Zeile für Zeile schreiben soll. Nun habe ich aus dem VB-Archiv mir den Artikel zum Auslesen der Multiline Textbox angeschaut und versucht die Moduke zu plazieren. Dabei bin ich dann schon auf die Nase gefallen und hatte erst einmal aufgehört.
Ich denke man muss zuerst die Anzahl der benutzen Zeilen ermitteln und dann den Zeileninhalt Zeile für Zeile auslesen und in die Tabelle schreiben. Da stehe ich nun..
Gruß
Bernd


Bild

Betrifft: AW: Multiline Textbox
von: Daniel
Geschrieben am: 11.07.2008 02:18:27
Hallo
probier mal diesen Code für den Eintragebutton:


Private Sub eintragen_Click()
Dim Zelle As Range
Dim txt
Dim TextTeile() As String
Set Zelle = Range("A1")
TextTeile = Split(Replace(TextBox1.Text, Chr(10), ""), Chr(13))
For Each txt In TextTeile
Zelle.Value = txt
Set Zelle = Zelle.Offset(1, 0)
Next
End Sub


allerdings werden nur Zeilenwechesel berücksichtigt, die der Anwender eingegeben hat (Shift + Enter)
Gruß, Daniel

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 11.07.2008 15:18:24
hallo Daniel,
entschuldige die lange Antwortzeiten. Ich bin zur Zeit viel unterwegs.
Den Code probiere ich aus. Das heisst aber man muss an jedem Ende der textboxzeile ein Shift+Enter geben.
Das birgt aber auch die Gefahr von Eingabefehlern. Gibt es nicht auch die Möglichkeit die Textbox so auszulesen, wie Sie nach der Eingabe aussieht. Ich habe da im VB Archiv was gelesen mit Aufruf von API's. Ein Teil des Codes habe ich in die Mudole kopiert. Mein Problem ist auch in der Verknüpfung dieser Module. Zum teil weiss ich nicht ob diese Teile dort überhaupt richtig plaziert sind. Weisst Du um diese Möglichkeit.
Gruß
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: Daniel
Geschrieben am: 12.07.2008 14:20:47
HI
ok, hier ne andere Mögichkeit, die einzelnen Textboxzeilen in Zeilen zu übertragen.


Private Sub CommandButton1_Click()
Dim i As Long
With TextBox1
.SetFocus
For i = 1 To .TextLength
.SelStart = i
.SelLength = 1
Select Case .SelText
Case Chr(13), Chr(10)
Case Else
Cells(.CurLine + 1, 1).Value = Cells(.CurLine + 1, 1).Value & .SelText
End Select
Next
End With
End Sub


Gruß, Daniel

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 13.07.2008 17:14:06
Hallo Daniel,
vielen Dank für Deine Hilfe. Die erste Variante habe ich mal ausprobiert. Funktioniert gut.
Die zweite Variante werde ich natürlich auch testen. Ich melde mich dann noch einmal.
Danke
Gruß aus Halle
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer
Geschrieben am: 14.07.2008 08:02:55
Hallo Daniel,
ich bin begeistert. Das funtkioniert wirklich gut. Nur das allererste Zeichen der Textbox wird abgeschnitten. Ich werde mal probieren i auf 0 zu setzen.
Gruß
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 14.07.2008 11:15:14
Hallo Daniel,
ich habe noch einmal eine Datei hochgeladen. Darin ist Dein Code eingefügt.
Mit dem Beispiel hat es prima geklappt. Mit dem eigentlichen Projekt habe ich noch ein paar Probleme
Im Beispiel genügte es mir, wenn der Text in Spalte 1 zeile 1 begann.
Ich muss aber in Zeile 28 Spalte 2 beginnen. Im vorliegenden Code beginnt er zwar in Spalte 28 aber schreibt 1 Buchtstaben unter den anderen und nicht die ganze Zeile. Was habe ich jetzt wieder falsch gemacht.
Gruß
Bernd
https://www.herber.de/bbs/user/53794.doc

Bild

Betrifft: AW: Multiline Textbox
von: Daniel
Geschrieben am: 14.07.2008 23:37:28
HI
der wichtigste Fehler ist erstmal, daß du ne Worddatei und keine Exceldatei hochgeladen hast.
Wenn ich fehler suchen soll, dann muss ich auch was ausprobieren können, dazu brauche ich dann schon ne funktionsfähige Datei, die dann auch den Fehler enthält.
der 2. Fehler ist, daß du einfach mal pauschal "On Error Resume Next" über den Code drüber schreibst.
sowas setzt man nur ganz geziehlt für einzelne Zeilen ein, aber nie pauschal für den ganzen Code.
denn so wird man nur sehr schwer die Fehlerursache finden, man ärgert sich nur über seltsame und nicht nachvollziebare Ergebnisse.
Gruß, Daniel

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 15.07.2008 07:53:00
https://www.herber.de/bbs/user/53820.xls
Hallo Daniel,
habe also meine Fehler korrigiert und die Testabelle hochgeladen. Eine Variante mit Deinem ersten Code, der wirklich gut funktioniert. Der Text wird das Arbeitsblatt Tabelle eingetragen. Damit man nicht so viel tippen muss, steht im Formular Text, der beim Initialisieren der Textbox eingelesen wird. Unter dem Button eintragen läuft dann die aus deinem Code abgeleitete Variante. Der Text wird dann in dass Arbeitsblatt Testtabelle geschrieben ab Zeile 28 Spalte 2 . Sch.... alle Buchstaben untereinander.
Gruß
Bernd

Bild

Betrifft: AW: Multiline Textbox
von: Daniel
Geschrieben am: 15.07.2008 22:53:17
HI
das ist der entscheidende Teil deines Makros:


tbgrund1.SetFocus
For i = 1 To tbgrund1.TextLength
tbgrund1.SelStart = i
tbgrund1.SelLength = 1
Select Case tbgrund1.SelText
Case Chr(13), Chr(10)
Case Else
Cells(zeile + 5, 2).Value = Cells(zeile + 5, 2).Value & tbgrund1.SelText
End Select
zeile = zeile + 1
Next


wichtig ist die Zeile "zeile = zeile +1" , hier wird der Zeilenzähler erhöht, dh. die neue ausgabezeile festgelgt.
geh mal den Code gedanklich durch und überlege dir, dann wann im Code eine neue Zeile festgelegt wird und dann denkmal darüber nach, wann das eigentlich passieren sollte und wo die Zeile plaziert werden müsste, damit es zum richtigen zeitpunkt passiert.
vielleicht hift es dir auch, den Code im Einzelstepmodus durchzugehen, dazu
- vor Makrostart im entsprechenden makro einen haltepunkt setzten (auf den linken rand des Codebereichs klicken, es erscheint ein brauner punkt. zum entfernen einfach auf den Punkt klicken
- jetzt das Makro starten, beim Haltepunkt stoppt der Ablauf
- jetzt kannst du den Ablauf Zeile für Zeile durchklicken, (mit F8 oder mit der Symbolleiste "Debuggen") und dir dabei die Variablenwerte anzeigen lassen (im Local-Fenster oder einfach mit der Maus drüberfahren
vielleicht findest du dann selbst heraus, wo das Problem liegt und wie es zu lösen ist.
Viel spass beim Knobeln, wenn du nicht weiterkommst, frag nochmal nach.
aber mach lieber nen neuen Tread auf, wir sind schon ziemlich weit unten.
Gruß, Daniel

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer

Geschrieben am: 16.07.2008 08:09:12
Danke Daniel,
da werde ich mal die Knobelrunde einlegen. Obwohl ich nicht weiß warum Du auf einmal in dieser Zeile
Cells(zeile + 5, 2).Value = Cells(zeile + 5, 2).Value & tbgrund1.SelText
den Wert zeile+1 auf zeile + 5 erhöht hast.
Setze ich die Erhöhung des Zeilenwertes unter Case Chr(13), Chr(10)
dann schreibt mir das Programm wieder eine endlose Zeile
tbgrund1.SetFocus
For i = 1 To tbgrund1.TextLength
tbgrund1.SelStart = i
tbgrund1.SelLength = 1
Select Case tbgrund1.SelText
Case Chr(13), Chr(10)
zeile = zeile + 1
Case Else
Cells(zeile + 5, 2).Value = Cells(zeile + 5, 2).Value & tbgrund1.SelText
End Select

Next

Bild

Betrifft: AW: Multiline Textbox
von: Bernd Cramer
Geschrieben am: 16.07.2008 08:39:05


Private Sub CommandButton1_Click()
Dim i As Long
Sheets("Tabelle").Activate
With tbgrund1
.SetFocus
For i = 0 To .TextLength
.SelStart = i
.SelLength = 1
Select Case .SelText
Case Chr(13), Chr(10)
MsgBox "Zeile zu Ende"
Case Else
Cells(.CurLine + 1, 2).Value = Cells(.CurLine + 1, 2).Value & .SelText
End Select
Next
End With
Sheets("formular").Activate
End Sub


Hallo Daniel,
ich habe die Originalversion nocheinmal durchlaufen lassen und per Debugging beobachtet. Ich kann nicht erkennen, wo das Programm erkennt, dass nun in eine neue Zeile geschrieben werden soll. Meine Änderung auf Spalte 2 wurde klaglos ausgeführt. Ich habe dann auch mal die Msgbox als Teststopp einfügt, diese wurde aber nie angefahren.
?????????
Gruß
Bernd

 Bild

Excel-Beispiele zum Thema "Multiline Textbox"

Text aus Textbox in Variable download Namen von TextBoxes hochzählen download
Text aus Textbox in Zellen aufteilen download Nichtnumerische Eingaben in TextBox verhindern download
Text aus UserForm-Textbox in Variable einlesen download Nur Buchstaben in eine UserForm-TextBox download
TextBoxes- und Label-Werte in Abhängigkeit verändern download Nur AJM in TextBox akzeptieren und Anzahl zählen download
Eingabelänge in TextBox begrenzen und Werte aus Liste übernehmen download Artikel aus Auswahltextbox in Sammeltextbox verschieben download
Bei Doppelklick Textbox mit Text einfügen download Umwandlung eines TextBox-Wertes in eine Zahl download
Wert in UserForm-TextBox eintragen und selektieren download Mit Drehfeld durch UserForm-TextBoxes blättern und Daten auslesen download
Mit TextBox-Werten in UserForm rechnen download Werte aus UserForm-TextBox in bestimmten Formate übertragen download
UserForm-TextBoxes ein- und ausblenden download Wert aus UserForm-TextBox in Tabelle suchen und in ListBox listen download
Suchbegriff aus einer UserForm-Textbox in Tabelle suchen und melden download Werte aus UserForm-TextBox und aus Tabelle gerundet anzeigen download
In einer UserForm-TextBox die Eingabe von Sonderzeichen verhindern download Bestimmte Zeichen in einer UserForm-TextBox markieren download
Textvariable in eine UserForm-TextBox eintragen download UserForm-TextBox-Werte über ScrollBar einlesen download
Wert aus Zelle in Tabellenblatt-Textbox eintragen download TextBox in Abhängigkeit einer ComboBox-Auswahl füllen download
Werte zweiter UserForm-TextBoxes multiplizieren download TextBox-Eingaben im Format TTMMJJ in gültiges Datum umwandeln download
Text aus UserForm-TextBox drucken download Tabulator in UserForm-TextBox simulieren download
UserForm-TextBox-Werte einer ListBox hinzufügen download UserForm-TextBox-Werte auf Numeric prüfen und in Tabelle eintragen download
Text aus UserForm-TextBox in Tabelle suchen download Text aus letzter Zelle mit Inhalt in UserForm-TextBox anzeigen download
Zeichen in UserForm-TextBox durch ScrollBar-Schieber markieren download Element in ListBox in Abhängigkeit einer TextBoxeingabe auswählen download
Arbeitsmappe schliessen, wenn kein Eintrag in TextBox erfolgt download Plausibilistätsprüfung bei Datum&Zeit-Eingaben in UserForm-TextBox download
Wert aus UserForm-TextBox suchen und Fundstelle kopieren download Tabellenblatt-TextBox-Wete in Abhängigkeit zu Drehfeld download
Eingabebegrenzungen für TextBoxes download Suchbegriff abfragen und Fundzeile in UserForm-TextBoxes download
Spalteninhalt in UserForm-TextBox mit ScrollBalken einlesen download Focus und Selection zwischen zwei TextBoxes wechseln download
Wert aus ComboBox in TextBox, dann in Tabelle suchen download Datumreihe aus TextBox-Einträgen generieren download
Eingetragenen Wert in TextBox speichern download Eigene Klasse für UserForm-TextBoxes bilden download
Markierung einer Datumsreihe gem. UserForm-TextBoxes download Datum aus TextBox an erste frei Stelle eintragen download