VBA: Gültigkeitsliste

Hallo Experten,

habe mit VBA eine dynamische Gültigkeitsliste programmiert. Ihre Daten erhält sie aus einer Tabellenspalte, deren Werte alphabetisch geordnet sind. Wenn man neue Werte dort einträgt, werden sie in die Liste übernommen. Das funktioniert alles ohne Probleme.

Allerdings ist die Liste inzwischen so lang geworden, dass sie ziemlich umständlich zu handhaben ist, da ich mich nämlich hauptsächlich mit der Tastatur, also ohne Maus durch’s Tabellenblatt bewege.

Meine Fragen nun:

  1. kann man die Zeilenanzahl des Zellendropdowns erhöhen (bei mir sind immer nur 8 Zeilen sichtbar, um die anderen Einträge zu sehen muß man mit der Maus scrollen)?
  2. kann man die Eigenschaften der Gültigkeitsliste so einstellen, dass bei Eingabe eines Buchstabens über die Tastatur die Auswahl dann zum ersten Eintrag der Liste springt, der mit eben diesem Buchstaben anfängt? (Bei Auswahllisten in Datenmasken funktioniert das jedenfalls so). Hab’ schon alle möglichen Tastenkombis ausprobiert, aber keine davon springt zum eingegebenen Buchstaben.

Vielleicht kann mir ja jemand von euch auf die Sprünge helfen?

Vielen Dank schon mal im Voraus
Gundel

Hallo Grundel.
dies ist ein allgemein leidiges Problem in Excell

hab mir da etwas zusammengebastelt,das funktioniert.klingt zwar ein bischen kompliziert ist es aber nicht.
und zwar folgendes:
über die Tastenfunktion „strg+G“ starte ich eine Userform,die ein Listenfeld mit der Gültigkeitsliste enthält. Dropdownfelder sind zwar auch nur 8 vorhanden,aber gibt man den 1. Buchstaben ein so wechselt dieser auch automatisch dorthin ebenso bei Eingabe des 2. Buchstaben usw…
bei 2 maligem drücken der Entertaste wird in die Selektierte Zelle eingetragen. das kannst du ja umstellen wie du willst
so und nun der Code Dazu:
Userformcode:
Private Sub CommandButton1_Click()
Sheets(„Tabelle2“).Activate
ActiveCell = cbxgueltig
Unload Me
End Sub

Private Sub UserForm_initialize()
Dim frm As UserForm
Dim i As Integer, imax As Integer
Set frm = UserForm1

With cbxgueltig
imax = ActiveSheet.UsedRange.Rows.Count
For i = 2 To imax
.AddItem Worksheets(„Tabelle2“).Cells(i, 1)
Next i

End With
End Sub

Makrocode[Tatenkombination strg+g]
Sub Makro1()

’ Tastenkombination: Strg+g
UserForm1.Show
End Sub

falls du eine Beispieldatei willst,so sag Berscheid

mfg
Harald

Danke, funktioniert!!! :smile:) o.w.T.
Gruß
Gundel