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
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
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
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