Hi!
Ich würde ganz gerne eine Combobox erstellen, in der die Werte die man eingibt, Zeile für Zeile gespeichert werden. Allerdings nur bis max 5 Zeilen. Danach soll die unterste Zeile gelöscht und dafür der neue Wert ganz oben wieder eingefügt werden.
Quasi genauso wie die URL-Leiste im Internet-Explorer oder die Historie im Mediaplayer.
Danke schonmal
Ich würde ganz gerne eine Combobox erstellen, in der die Werte
die man eingibt, Zeile für Zeile gespeichert werden.
Allerdings nur bis max 5 Zeilen. Danach soll die unterste
Zeile gelöscht und dafür der neue Wert ganz oben wieder
eingefügt werden.
Hallo Vino,
schreib mal in A1:A5 was unterschiedliches rein.
Erstelle eine Combobobox aus Steuerelementtoolbox (Active-X).
Setze den ListFillRange auf A1:A5
Ins Tabellenmodul z.B. Tabelle1:
Private Sub ComboBox1\_LostFocus()
If Application.CountIf(Range("A1:A5"), ComboBox1.Value) = 0 Then
If ComboBox1.Value "" Then
Range("A1:A4").Cut Destination:=Range("A2")
Range("A1").Value = ComboBox1.Value
End If
End If
End Sub
Gruß
Reinhard
Sorry, nicht dazu geschrieben:
Es handelt sich um VB6. Also ohne Excel.
Hallo,
so etwas?
Option Explicit
Private Sub Text1\_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If Combo1.ListCount \> 4 Then
Combo1.RemoveItem (0)
End If
Combo1.AddItem Text1.Text
End If
End Sub
Gruß Rainer
Ja genau,
jetzt müssten die neuen Eingaben nurnoch von oben nach unten in die Combobox eingefügt werden. Geht das?
Hallo,
jetzt müssten die neuen Eingaben nurnoch von oben nach unten
in die Combobox eingefügt werden. Geht das?
ja, genau so gut.
Option Explicit
Private Sub Text1\_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If Combo1.ListCount \> 4 Then
Combo1.RemoveItem (Combo1.ListCount - 1)
End If
Combo1.AddItem Text1.Text, 0
End If
End Sub
Gruß Rainer
Ja genau das ist es! Vielen Dank.
Nur noch ein letztes Problem:
Der Text aus der Textbox soll nur in die Combobox, wenn er neu ist und sich von den anderen Einträgen unterscheidet.
Ich versuche jetzt schon seit Stunden das ganze mit Variablen zu lösen aber komme einfach nicht dahinter.
Hallo,
Nur noch ein letztes Problem:
Der Text aus der Textbox soll nur in die Combobox, wenn er neu
ist und sich von den anderen Einträgen unterscheidet.
auch kein Problem. 
Option Explicit
Private Sub Text1\_KeyDown(KeyCode As Integer, Shift As Integer)
Dim i As Integer
If KeyCode = 13 Then
For i = 0 To Combo1.ListCount - 1
If Trim(Text1.Text) = Trim(Combo1.List(i)) Then Exit Sub
Next
If Combo1.ListCount \> 4 Then
Combo1.RemoveItem (Combo1.ListCount - 1)
End If
Combo1.AddItem Text1.Text, 0
End If
End Sub
Gruß Rainer
Exakt das was ich suche!
Vielen Dank für die Hilfe.
Eine letzte Frage:
Gibt es eine Möglichkeit, dass wenn bei der Combobox ein Eintrag ausgewählt wurde, der Cursor sofort auf Textbox2 springt?
Hi,
Gibt es eine Möglichkeit, dass wenn bei der Combobox ein
Eintrag ausgewählt wurde, der Cursor sofort auf Textbox2
springt?
Ja.
Ich habe mal auch den angeklickten Text in die Textbox geschrieben, das kannst Du ja entfernen, wenn Du es nicht brauchst.
Gruß Rainer
Option Explicit
Private Sub Combo1\_Click()
Text1.Text = Combo1.List(Combo1.ListIndex)
Text1.SetFocus
End Sub
Private Sub Text1\_KeyDown(KeyCode As Integer, Shift As Integer)
Dim i As Integer
If KeyCode = 13 Then
For i = 0 To Combo1.ListCount - 1
If Trim(Text1.Text) = Trim(Combo1.List(i)) Then Exit Sub
Next
If Combo1.ListCount \> 4 Then
Combo1.RemoveItem (Combo1.ListCount - 1)
End If
Combo1.AddItem Text1.Text, 0
End If
End Sub
Alles klar, jetzt passt alles.
Danke nochmal.