Clever-Excel-Forum

Normale Version: TextBox in erste Zeile springen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe ein Nachrichtensystem, mit

Datum, Betreff, von, Nachricht

Wenn die Nachricht sehr lang ist, steht der Cursor immer in der letzten "Zeile".

Wie bekomme ich es hin, dass er in die erste "Zeile" springt?

schon mit dem Code probiert, aber er funzt nicht.

      txtnachricht.SelStart = 700 'in Zeile 700 springen um Scrollbalken zu aktivieren
      txtnachricht.SetFocus 'Scrollbar anzeigen
      txtnachricht.SelStart = 0 'in Zeile 0 springen

Userform:
Code:
Private Sub cobantwort_Click()

Unload Me

Dim varF As Variant

With Worksheets("Nachrichten").Range("A2:A15")
    varF = Application.Match(Me.txtvon.Value, .Cells, 0)
    'varF = Application.Match(Me.txtMitarbeiter.Value, Worksheets("Nachrichten").Cells, 0)
    If IsNumeric(varF) Then
   
If .Cells(varF, 6) = 1 And .Cells(varF, 1) = .Cells(varF, 3) Then

Nachrichten!txtMitarbeiter.Value = txtvon.Value
Nachrichten!txtbetreff.Value = "AW: " & txtbetreff.Value
Nachrichten!txtnachricht.Value = "" & vbLf & vbLf & vbLf & "Ursprüngliche Nachricht von " & txtvon.Value & ": " & vbLf & txtnachricht.Value

Nachrichten!Label5 = "Auf die Nachricht von " & txtvon.Value & " antworten."
Antwort = "ja"

Nachrichten.Show

Exit Sub
End If

If .Cells(varF, 6) = 1 Then

    MsgBox "Das Postfach von " & """" & txtvon & """" & " ist voll!" & vbLf & vbLf & "Alte Nachricht muss " & """" & txtvon & """" & " erstmal löschen." & vbLf & vbLf & "Bitte später nochmal probieren!", vbYes, "Fehler beim antworten!"
    Else
   
Nachrichten!txtMitarbeiter.Value = txtvon.Value
Nachrichten!txtbetreff.Value = "AW: " & txtbetreff.Value
Nachrichten!txtnachricht.Value = "" & vbLf & vbLf & vbLf & "Ursprüngliche Nachricht von " & txtvon.Value & ": " & vbLf & txtnachricht.Value

Nachrichten!Label5 = "Auf die Nachricht von " & txtvon.Value & " antworten."
Antwort = "ja"

Nachrichten.Show
     
      End If
     
      End If
      End With

End Sub


Sub UserForm_Activate()

Dim lngSuch
Dim i As Integer
Dim LRow As Long
Dim rngC As Range

LRow = Worksheets("Nachrichten").Cells(Rows.Count, 1).End(xlUp).Row
lngSuch = Worksheets("Hilfstabelle").Range("D76").Value

Set rngC = Worksheets("Nachrichten").Range("A2:A" & LRow).Find(lngSuch, _
   Worksheets("Nachrichten").Range("A" & LRow), xlValues)

With Bearbeiten
   If Not rngC Is Nothing Then
     
      txtnachricht.SelStart = 700 'in Zeile 700 springen um Scrollbalken zu aktivieren
      txtnachricht.SetFocus 'Scrollbar anzeigen
      txtnachricht.SelStart = 0 'in Zeile 0 springen
   
      txtbetreff = Worksheets("Nachrichten").Cells(rngC.Row, 2)
      txtvon = Worksheets("Nachrichten").Cells(rngC.Row, 3)
      txtDatum = Worksheets("Nachrichten").Cells(rngC.Row, 4)
      txtnachricht = Worksheets("Nachrichten").Cells(rngC.Row, 5)
           
   Else
      MsgBox "Es sind keine Nachricht vorhanden!", vbOKOnly, "Meldung"
   End If
End With

End Sub

Sub cobnachrichtlöschen_Click()

Dim lngSuch
Dim i As Integer
Dim LRow As Long
Dim rngC As Range

If Sheets("Nachrichten").ProtectContents = True Then
Blattschutz = "ja"
Sheets("Nachrichten").Unprotect Worksheets("Einstellungen").Range("P19").Value 'Blattschutz aufheben
End If

LRow = Worksheets("Nachrichten").Cells(Rows.Count, 1).End(xlUp).Row
lngSuch = Worksheets("Hilfstabelle").Range("D76").Value

Set rngC = Worksheets("Nachrichten").Range("A2:A" & LRow).Find(lngSuch, _
   Worksheets("Nachrichten").Range("A" & LRow), xlValues)

With Bearbeiten
   If Not rngC Is Nothing Then
   
   strAntwort = MsgBox("Willst Du wirklich die Nachricht von " & """" & txtvon & """" & " löschen?", vbYesNo, "Nachricht löschen")
   
   If strAntwort = vbYes Then
   
      Worksheets("Nachrichten").Cells(rngC.Row, 2) = ""
      Worksheets("Nachrichten").Cells(rngC.Row, 3) = ""
      Worksheets("Nachrichten").Cells(rngC.Row, 4) = ""
      Worksheets("Nachrichten").Cells(rngC.Row, 5) = ""
      Worksheets("Nachrichten").Cells(rngC.Row, 6) = ""
      MsgBox "Die Nachricht wurde gelöscht!", vbOKOnly, "Nachricht löschen"
     
    If Sheets("Startseite").ProtectContents = True Then
    BlattschutzStartseite = "ja"
    Sheets("Startseite").Unprotect Worksheets("Einstellungen").Range("P19").Value 'Blattschutz aufheben
    End If

    Worksheets("Startseite").Range("P3").Value = ""

    If BlattschutzStartseite = "ja" Then
    Sheets("Startseite").Protect Worksheets("Einstellungen").Range("P19").Value 'Blattschutz setzen
    End If
     
      End If
     
      Unload Me
   Else
      MsgBox "Nachricht konnte nicht gelöscht werden!", vbOKOnly, "Fehler!"
   End If
End With

  If Blattschutz = "ja" Then
    Sheets("Nachrichten").Protect Worksheets("Einstellungen").Range("P19").Value 'Blattschutz setzen
    End If

End Sub

Private Sub UserForm_Initialize()

Label5 = Worksheets("Hilfstabelle").Range("D76").Value
     
End Sub

Sub cobschliessen_Click()

Unload Me

End Sub

Vielen Dank für Eure Unterstützung
Hallo, 19 

TextBox1.SelStart = 0 funktioniert schon. In deinem Code schreibst du es aber VOR...

Code:
txtnachricht = Worksheets("Nachrichten").Cells(rngC.Row, 5)

Damit springst du wieder ans Ende der TextBox. Das muss NACH dieser Codezeile kommen.
[attachment=49170]

In meiner Beispieldatei siehst du, während die MsgBox offen ist, dass er am Ende der TextBox ist. Nach Klick auf OK springt er an den Anfang der TextBox. 21
Vielen Dank

manchmal ist man richtig blind!