Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ComboBox mit Dropdown aus Verweis von Tabellenblatt
#1
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.

   


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
Antworten Top
#2
Moin,

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

Ciao
Thorsten
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • Primo Centurio
Antworten Top
#4
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.


Angehängte Dateien
.xlsm   Beispiel für Primo.xlsm (Größe: 15,37 KB / Downloads: 5)
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Primo Centurio
Antworten Top
#5
Dein Konzept ist falsch.

Reicht schon:

Code:
Private Sub Userform_Initialize()
  combobox1.List = Sheets("Daten_Analyse").Cells(1).CurrentRegion.Value
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Primo Centurio
Antworten Top
#6
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Primo Centurio
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • Primo Centurio
Antworten Top
#8
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste