Hallo Rainer,
hmm, nungut. Also um was es in den vorhergehenden Thema bei mir ging weisst du ja. Sinn ist es jetzt das wenn die textzeile leer ist und man die Pfeil Taste nach oben oder unten drueckt, das dann der vorhergehende Text angezeigt wird. Gespeichert werden bis zu 10 Eingaben
Wenn nun eine Eingabe geschehen ist und man die Enter Taste betaetigt, so werden die Daten verarbeitet und automatisch der alte Wert der in der textbox stand gespeichert
Hier nun der Codeschnipsel
Die procedure zum speichern !
Die Variable OldText ist als Variant im Modul als Private declariert
Die Proceduren Savewert und Getwert befinden sich beide in dem selben Modul.
'Modul 1
Dim OldText As Variant 'Alte Texteingaben!
Public Sub SaveText(ByVal t As TextBox) 'Speichert den Text im Array
On Error Resume Next
Dim i As Integer
If IsArray(OldText) Then
If UBound(OldText) UBound(OldText) Then pos = 0
t.Text = OldText(pos)
t.SetFocus
t.SelStart = 0
t.SelLength = Len(t.Text)
GetText = 0
Exit Function
fehler:
Exit Function
End Function
Public Sub Vervollständige(l As ListEx, t As TextBox) 'trägt automatisch den Usernamen in die Liste ein!
On Error Resume Next
Dim i As Integer, z As Integer
Dim Search As String
Static count As Integer
Dim found As Boolean
Dim pos As Integer, pos1
If l.ListCount = 0 Then Exit Sub 'Keine Einträge
pos = t.SelStart
For i = pos To 1 Step -1
If Mid(t.Text, i, 1) = " " Then Exit For
Search = Mid(t.Text, i, 1) & Search
Next i
pos1 = i
For i = 0 To l.ListCount - 1
If InStr(1, LCase(l.Items(i).Text), LCase(Search), 1) = 1 Then
z = z + 1
If z \> count Then
t.Text = Mid(t.Text, 1, pos1) & l.Items(i).Text
count = count + 1
found = True
Exit For
Else
found = False
End If
End If
Next i
If Not (found) Then
For i = 0 To l.ListCount - 1
If InStr(1, LCase(l.Items(i).Text), Search, 1) = 1 Then
count = 1
t.Text = Mid(t.Text, 1, pos1) & l.Items(i).Text
t.SelStart = pos
t.SelLength = Len(t.Text) - pos
Exit For
End If
Next i
Else
t.SelStart = pos
t.SelLength = Len(t.Text) - pos
End If
End Sub
Die textbox und die Listbox, befindet sich auf der Form 1
Der Codeschnipsel davon lautet:
'Form1
Private Sub Text1\_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
Dim Retval As Long
Select Case KeyCode
Case vbKeyUp
Retval = GetText(True, Text1)
Case vbKeyDown
Retval = GetText(False, Text1)
End Select
End Sub
Private Sub Text1\_KeyPress(KeyAscii As Integer)
On Error Resume Next
Select Case KeyAscii
Case vbKeyTab 'Tabulator
Call Vervollständige(ListEx1, Text1)
Case vbKeyF1 'Hilfe
Case vbKeyF2 'Text speichern
Case vbKeyF12 'Minimieren
End Select
End Sub
So nun solltest du alle dazugehörigen Codeschnipsel sehen 
Was ich aber nicht verstehe, ist das das selektieren in der Sub Vervollstaendige funktioniert :-/
In der Sub GetWert bekomme ich nur die aktuellen Daten eingetragen, aber sie werden wie gesagt nicht selektiert 
LG Alex