Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Effektiv Sätze aus TextBox in Zellen bringen.
#1
Hallo liebe VBA Experten,

brauch mal wieder eure Hilfe. Ich habe in einer TextBox  Sätze untereinander stehen (Multiline Modus) .
Jetzt möchte ich einen CommandButton programmieren, der diese  Sätze einzeln in  Zellen untereinander auf mein Arbeitsblatt schreibt. Was ich  suche ist ein so effizienter Code wie möglich, der diese Aufgabe erledigt. Vielleicht geht so etwas ohne Schleifen oder ist mit 3 bis 4 schlauen Programmierzeilen getan.

Vielen Dank für eure Hilfe im voraus.
Antworten Top
#2
Hallo Kathrin,

reicht das?

Code:
Private Sub CommandButton1_Click()
   Dim vntText As Variant
  
   vntText = Split(TextBox1, vbCr)
   Range("A1").Resize(UBound(vntText) + 1) = WorksheetFunction.Transpose(vntText)
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo Stefan

und danke.

Wollte gerade noch meinen eigenen Code schreiben z.B. so
Zitat:u = Split(TextBox1.Value, Chr(13))
For i = 0 + 1 To UBound(u) + 1
Worksheets("Tabelle1").Range("G" & i).Value = u(i)
Next i

aber deiner ist zweifelsfrei besser. Danke.
Antworten Top
#4
Hallo Kathrin,

kleiner Hinweis zu deinem Code

Code:
For i = 0 + 1 To UBound(u) + 1
Worksheets("Tabelle1").Range("G" & i).Value = u(i)

das Array ist normalerweise 0-basiert und bei deiner Variante wird die erste Zeile nicht eingetragen bzw. es gibt einen Laufzeitfehler weil Ubound überschritten ist. Machs besser so

Code:
For i = 0 To UBound(u)
Worksheets("Tabelle1").Range("G" & i + 1).Value = u(i)
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


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