20.11.2023, 22:37
Betreff: Hilfe bei VBA-Code für dynamische Dropdown-Liste in Excel 2019
Hallo Forum-Mitglieder,
ich stehe vor einer Herausforderung bei der Erstellung eines VBA-Codes für Excel 2019 und hoffe auf eure Unterstützung.
In meinem Excel-Blatt 'Meldung-Blatt 1' befindet sich in Zelle E8 eine Dropdown-Liste mit 10064 Straßennamen. Die Quelle für die Straßennamen ist =Straße!$A$2:$A$10064. Ich möchte, dass die Dropdown-Liste durchsuchbar ist, sodass die Auswahl dynamisch reduziert wird, wenn die Anfangsbuchstaben einer Straße eingegeben werden. Dabei soll der Code sicherstellen, dass mit zunehmender Anzahl von eingegebenen Buchstaben die Auswahl in der Dropdown-Liste entsprechend reduziert wird.
Leider funktioniert mein bisheriger Code nicht wie gewünscht. Hier ist mein aktueller Code:
Ich wäre sehr dankbar, wenn jemand mir bei der Verbesserung dieses Codes helfen könnte.
Vielen Dank im Voraus![attachment=50063]
Hallo Forum-Mitglieder,
ich stehe vor einer Herausforderung bei der Erstellung eines VBA-Codes für Excel 2019 und hoffe auf eure Unterstützung.
In meinem Excel-Blatt 'Meldung-Blatt 1' befindet sich in Zelle E8 eine Dropdown-Liste mit 10064 Straßennamen. Die Quelle für die Straßennamen ist =Straße!$A$2:$A$10064. Ich möchte, dass die Dropdown-Liste durchsuchbar ist, sodass die Auswahl dynamisch reduziert wird, wenn die Anfangsbuchstaben einer Straße eingegeben werden. Dabei soll der Code sicherstellen, dass mit zunehmender Anzahl von eingegebenen Buchstaben die Auswahl in der Dropdown-Liste entsprechend reduziert wird.
Leider funktioniert mein bisheriger Code nicht wie gewünscht. Hier ist mein aktueller Code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim StraßenBereich As Range
Dim FilterKriterium As String
Dim LetzteZeile As Long
' Überprüfen, ob die Änderung in Zelle E8 stattgefunden hat
If Target.Address = "$E$8" Then
Application.EnableEvents = False ' Events deaktivieren, um Endlosschleifen zu vermeiden
Me.AutoFilterMode = False ' Vorhandene Filter deaktivieren
' Den Straßenbereich definieren (Anpassen Sie dies an Ihre tatsächliche Datenbereich)
LetzteZeile = Sheets("Straße").Cells(Sheets("Straße").Rows.Count, "A").End(xlUp).Row
Set StraßenBereich = Sheets("Straße").Range("A2:A" & LetzteZeile)
' Filterkriterium aus Zelle E8 abrufen
FilterKriterium = Me.Range("E8").Value
' Filter anwenden, wenn ein Kriterium vorhanden ist
If FilterKriterium <> "" Then
StraßenBereich.AutoFilter Field:=1, Criteria1:="*" & FilterKriterium & "*"
End If
' Events wieder aktivieren
Application.EnableEvents = True
End If
End Sub
Vielen Dank im Voraus![attachment=50063]