Pulldown-Menü mit Auswahl?

[Excel2003]

Hallo zusammen,
ich habe hier in einer Tabelle einen Bereich [Tabelle1!G2:G500].
Diesen Zellen habe ich einen Namen gegeben: „=Namen“ und in einem anderen Bereich [Tabelle2!A4:A100] per Datengültigkeit/Liste ein Pulldown-Menü erzeugt.

Ist es [ggf. per VBA] möglich das Pulldown so anzupassen das zB. bei der Eingabe des ersten Buchstabens nur eine Auswahl angezeigt wird, damit die Liste nicht so lang ist?

Danke für die Hilfe
Holger

ich habe hier in einer Tabelle einen Bereich
[Tabelle1!G2:G500].
Diesen Zellen habe ich einen Namen gegeben: „=Namen“ und in
einem anderen Bereich [Tabelle2!A4:A100] per
Datengültigkeit/Liste ein Pulldown-Menü erzeugt.

Ist es [ggf. per VBA] möglich das Pulldown so anzupassen das
zB. bei der Eingabe des ersten Buchstabens nur eine Auswahl
angezeigt wird, damit die Liste nicht so lang ist?

Hallo Holger,

die Datei:
http://www.hostarea.de/server-03/Maerz-faf063c608.xls

Auswahl in einer Gültigkeitsliste löst keinen Event aus, deshlab mußte ich die Formeln in B reinschreiben und dann den Event Calculate ausnutzen.

Die Liste steht in Tab1!G2:G17, in Tab1 Spalte E stehen die Anfangsbuchstaben aller Namen in der Liste, in Spalte F jeder Anfangsbuchstabe nur einmal. Die Buchstabne in F haben den namen „Buchstaben“.
WahlA9 bedeutet, die Namen in Tab1!$G$10:blush:G$12 fangen alle mit dem E in A9 an.
Die Listen in Tab1!E:G werdnn aktualisiert und sortiert wenn du in G etwas abänderst.

Tabellenblatt: [Mappe1]!Tabelle2
 │ A │ B │
───┼────────┼────────┤
 4 │ Dieter │ Dieter │
───┼────────┼────────┤
 5 │ │ 0 │
───┼────────┼────────┤
 6 │ │ 0 │
───┼────────┼────────┤
 7 │ Dieter │ Dieter │
───┼────────┼────────┤
 8 │ │ 0 │
───┼────────┼────────┤
 9 │ E │ E │
───┼────────┼────────┤
10 │ │ 0 │
───┼────────┼────────┤
11 │ │ 0 │
───┼────────┼────────┤
12 │ │ 0 │
───┼────────┼────────┤
13 │ │ 0 │
───┴────────┴────────┘
Benutzte Formeln:
B4 : =A4
B5 : =A5
B6 : =A6
B7 : =A7
B8 : =A8
B9 : =A9
B10: =A10
B11: =A11
B12: =A12
B13: =A13

Festgelegte Namen:
Auswahl : =Tabelle2!$A$4:blush:A$13, unbenutzt in Selektion.
Buchstaben: =Tabelle1!$F$2:blush:F$11, unbenutzt in Selektion.
Namen : =Tabelle1!$G$2:blush:G$17, unbenutzt in Selektion.
WahlA4 : =Tabelle1!$G$7:blush:G$9, unbenutzt in Selektion.
WahlA7 : =Tabelle1!$G$7:blush:G$9, unbenutzt in Selektion.
WahlA9 : =Tabelle1!$G$10:blush:G$12, unbenutzt in Selektion.

A4:B13
haben das Zahlenformat: Standard

Codes in Tabelle1 :

Private Sub Worksheet\_Change(ByVal Target As Excel.Range)
Dim Zei As Long, colC As New Collection, C As Integer, Z As Long, F As String
If Target.Column 7 Then Exit Sub
Zei = Cells(Rows.Count, 7).End(xlUp).Row
Range("G2:G" & Zei).Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlGuess, \_
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("E:F").ClearContents
Range("E2:E" & Zei).FormulaLocal = "=Links(G2;1)"
Range("E2:E" & Zei).Value = Range("E2:E" & Zei).Value
On Error Resume Next
For Z = 2 To Zei
 colC.Add Item:=Left(Cells(Z, 7), 1), key:=Left(Cells(Z, 7), 1)
 If Err.Number = 0 Then
 Cells(colC.Count + 1, 6) = colC(colC.Count)
 Else
 Err.Clear
 End If
Next Z
On Error GoTo 0
ActiveWorkbook.Names.Add Name:="Buchstaben", RefersToR1C1:="=Tabelle1!R2C6:R" & colC.Count & "C6"
End Sub

Codes in Tabelle2 :

Private Sub Worksheet\_Calculate()
Dim Von As Long, Bis As Long, strN As String
With ActiveCell
 If .Column 1 Then Exit Sub
 If .Value = "" Then
 With .Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= \_
 xlBetween, Formula1:="=Buchstaben"
 End With
 ElseIf Len(.Value) = 1 Then
 Von = Application.Match(.Value, Worksheets("Tabelle1").Columns(5), 0)
 Bis = Von
 While Worksheets("Tabelle1").Cells(Bis, 5) = Worksheets("Tabelle1").Cells(Bis + 1, 5)
 Bis = Bis + 1
 Wend
 strN = "Wahl" & .Address(0, 0)
 ActiveWorkbook.Names.Add Name:=strN, RefersToR1C1:="=Tabelle1!R" & Von & "C7:R" & Bis & "C7"
 With .Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= \_
 xlBetween, Formula1:="=" & strN
 End With
 End If
End With
End Sub
'
Private Sub Worksheet\_SelectionChange(ByVal Target As Excel.Range)
If Target.Column 1 Then Exit Sub
If Target.Cells.Count 1 Then Exit Sub
With Target.Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= \_
 xlBetween, Formula1:="=Buchstaben"
End With
End Sub
'
Sub tt()
Application.EnableEvents = True
End Sub

Gruß
Reinhard

Hallo Reinhard,
Würde am liebsten sofort dabei gehen und es ausprobieren.
Muss aber jetzt zur Arbeit. Rückmeldung später.

Bis dann, danke
Holger

Hallo Reinhard,
Funktioniert sehr gut. Ich verstehe zwar nicht wirklich was du da gemacht hast, ist ja aber auch nicht notwendig. Ein keines Problem gab es noch, der letzte Buchstabe wurde im ersten Pulldown nicht mit angezeigt. Das habe ich aber hin bekommen.

Herzliches Danke schön und schöne Grüße
Holger

Hallo Holger,

Funktioniert sehr gut. Ich verstehe zwar nicht wirklich was du
da gemacht hast, ist ja aber auch nicht notwendig.

was genau ist unklar?

Ein keines
Problem gab es noch, der letzte Buchstabe wurde im ersten
Pulldown nicht mit angezeigt. Das habe ich aber hin bekommen.

Naja, kleiner Lapsus, ich war überhaupt froh daß mit einer Gültigkeitsliste gelöst zu bekommen.

Daß du das gelöst hast erstaunt mich nicht, ich lese ja mit und weiß dich Excelmäßig einigermaßen einzuschätzen :smile:

Kurz bevor ich auf Calculate kam war ich nah dran dir zu schreiben daß es so mit Gültigkeitsliste nicht geht.
dann hätte ich eine ComboBox o.ä. empfohlen um damit die Gültigkeitsliste nachszustellen mit besseren Features.

Dazu hatte ich schon mal Code gebastelt wo man durch die Eingabe eines Buchstabens oder durch die Auswahl in einer Liste, z.B. den Buchstaben „H“ wählt. Nun werden nur alle angezeigt die mit H beginnen.
Der Focus, der Curser, wie auch immer man das sieht steht dann hinter dem „H“, wenn man nun a eintippt werden alle angezeigt die mit „Ha“ beginnen. Usw.

Problem1 ist, der Code dafür ist auf einer Festplatte von mir die warum auch immer nicht mehr funktioert.

Problem2 ist, ich habe den Code hier gezeigt, nur, wie den wiederfinden, wie der Betreff hieß weiß ich nicht mehr.

Gruß
Reinhard

Herzliches Danke schön und schöne Grüße
Holger

Hallo Holger,

Funktioniert sehr gut. Ich verstehe zwar nicht wirklich was du
da gemacht hast, ist ja aber auch nicht notwendig.

was genau ist unklar?

Hallo Reinhard,
unklar… Na ja, ich gehöre zu den „etwas älteren Semestern“ die Englisch in der Schule abwählen konnten. Und mein „innerer Schweinehund“ weigert sich bis jetzt beharrlich etwas anzufassen was ich mir erst übersetzen muss um es zu verstehen.
Ich habe deshalb mit VBA so meine Probleme. Ich war so froh mein C64-Basic nicht mehr benutzen zu müssen und jetzt das… grins.

Deshalb „verbiege“ ich auch lieber mal einige Funktionen von Excel bevor ich „mein Glück“ bei VBA suche.

Ja ja, danke für die Hilfe, funktioniert prima
Holger