Clever-Excel-Forum

Normale Version: ComboBox mit Dropdown aus Verweis von Tabellenblatt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Ich brauche mal wieder eure Hilfe und zwar würde ich gerne folgendes erreichen:

Ich habe ein UserForm mit zwei ComboBoxen. 
ComboBox 1 soll als Suchbegriff dienen und in ComboBox2 soll mir dann der bestimmte Wert aus der Tabelle 1 ausgegeben werden, der durch den Suchbegriff gefunden wurde.

[attachment=44726]


Kurz Anhand vom Bild erklärt.

Ich trage in ComboBox 1 die Nummer "1" ein und in ComBox2 kann ich dann als Dropdown einen Wert von "A-K" auswählen
Trage ich in ComboBox 1 die Nummer "2" ein kann ich in ComboBox2 den Wert von "L-U" auswählen.

Ich habe mit folgendem Code versucht es hinzukriegen aber der Bereich in ComboBox2 bleibt immer der gleiche obwohl ich den Suchbegriff in ComboBox1 ändere

Code:
Private Sub ComboBox1_Change()
    Dim lngZeileMax As Long
    Dim SuchBegriff As Variant
    SuchBegriff = ComboBox1.Value
   
   
    lngZeileMax = Sheets("Daten_Analyse").Range("A:A").Find(SuchBegriff, , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Rows.Count
 
    With Me.ComboBox2
   
        .RowSource = "Daten_Analyse!A1:A2" & lngZeileMax
        .Style = fmStyleDropDownList
        .ListIndex = 0
        .ListRows = 20
        .Font.Bold = False
        .ForeColor = RGB(0, 0, 0)
   
    End With
End Sub


Danke für eure Hilfe

Lg Primo
Moin,

zeig doch bitte die Excel-Bsp-Datei und nicht ein Bild.

Ciao
Thorsten
Hi,

da stecken so einige Ungereimtheiten im Code.
Teste mal (Code ist noch nicht optimiert):

Code:
Private Sub ComboBox1_Change()
    Dim SuchBegriff As String
    Dim x As Long
    SuchBegriff = ComboBox1.Value
    If IsNumeric(SuchBegriff) Then SuchBegriff = CLng(SuchBegriff)
 
  Me.ComboBox2.Clear

    With Worksheets("Daten_Analyse")
        For x = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
            If .Cells(x, 1) = SuchBegriff Then
                Me.ComboBox2.AddItem .Cells(x, 2)
            End If
        Next x
    End With
    With Me.ComboBox2
        .Style = fmStyleDropDownList
        .ListIndex = 0
        .ListRows = 20
        .Font.Bold = False
        .ForeColor = RGB(0, 0, 0)
 
    End With
End Sub
Hallo Primo,

habe deinen Quelltext mal außen vor gelassen und selbst was geschrieben. Sieh mal, ob es das ist, was du brauchst. Über die weitere Verwendung der Auswahl in Box 2 hast du dich ja nicht vertieft. Deshalb dazu (noch) kein Vorschlag.
Dein Konzept ist falsch.

Reicht schon:

Code:
Private Sub Userform_Initialize()
  combobox1.List = Sheets("Daten_Analyse").Cells(1).CurrentRegion.Value
End Sub
Hallo snb,

falls du mich meinst: teste mal deinen Vorschlag, dann wirst du merken, dass der die Anforderungen nicht erfüllt. Da muss nicht jede Zahl zehn mal erscheinen.
Hallo,
hier noch einer von weiteren Möglichkeiten - mal über Array.
Code:
Option Explicit

Private Sub ComboBox1_Change()
    Dim i As Long, j As Long, arrList()
    With Sheets("Daten_Analyse")
        For i = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
            If ComboBox1.List(ComboBox1.ListIndex, 0) = .Cells(i, 1) Then
                j = j + 1
                ReDim Preserve arrList(1 To j)
                arrList(j) = .Cells(i, 2)
            End If
        Next i
        ComboBox2.List = arrList
    End With
End Sub

Private Sub UserForm_Initialize()
    Dim i As Long, j As Long, varSammeln$, arrList()
    With Sheets("Daten_Analyse")
        For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
            If InStr(1, varSammeln, .Cells(i, 1)) = 0 Then
                varSammeln = varSammeln & .Cells(i, 1) & " "
                j = j + 1
                ReDim Preserve arrList(1 To j)
                arrList(j) = .Cells(i, 1)
            End If
            ComboBox1.List = arrList
        Next i
    End With
End Sub
Gruß Uwe
Hallo zusammen

Herzlichen Dank für eure Hilfe

@Egon12, @Boris und @Klaus-Dieter genau das was ich gesucht habe, alle Lösungen funktionieren 1A :) Herzlichen Dank

@Klaus-Dieter der Wert, der dann in ComboBox2 erscheint, wird in ein anderes Tabellenblatt eingefügt aber das sollte ich hinkriegen :)


Nochmals vielen herzlichen Dank

Lg Primo