ComboBox: Ausgewählter Wert in anderer Tabelle suchen

  • Excel

    ComboBox: Ausgewählter Wert in anderer Tabelle suchen

    Hallo zusammen :),

    auf einem "Tabellenblatt3" befinden sich eine ComboBox2 und 28 Checkboxen (Checkbox2 - Checkbox29). Den Checkboxen sind Kriterien zugewiesen und über die Combobox2 kann eine Produktbezeichnung ausgewählt werden. In "Tabelle1" sind die entsprechenden Produktdaten hinterlegt. Ich habe jetzt nun einen Code geschrieben, dass wenn ich über die Combobox2 einen Produktbezeichnung auswähle, mir in den Datensätzen der "Tabelle1" dieses Produkt im Bereich "B5:AA13" herausgesucht werden soll. Wird das Produkt in einer Zelle gefunden, soll für jede markierte Checkbox aus dem "Tabellen3" das entsprechende Kriterium in "Tabelle2" aufgelistet werden in Spalte B5:B. Ist eine Checkbox nicht markiert soll der nächst folgende Wert in der "Tabelle2" um eins nach oben rutschen, damit keine Lücke entsteht.

    Private Sub ComboBox2_Change()

    Dim rngBereich As Range
    Dim r As Long
    Dim lngRow As Long


    If ComboBox2.Value <> "" Then
    lngRow = 5
    For r = 2 To 29
    With Worksheets("Tabelle1")
    Set rngBereich = .Range("B5:AA13")
    If Not rngBereich Is Nothing Then
    If Worksheets("Tabelle3").OLEObjects("CheckBox" & CStr(r)).Object.Value Then
    Worksheets("Tabelle2").Cells(lngRow, 4).Value = Worksheets("Tabelle1").Cells(rngBereich.Row, r - 1).Value
    lngRow = lngRow + 1
    End If
    End If
    End With
    Next
    End If

    End Sub

    Der Code funktioniert auch soweit, es kommt zumindest keine Fehlermeldung. Allerdings ist mir aufgefallen, wenn ich mit F8 den Code durchgehe, dass er beim ersten Durchgang der For-Schleife keinen Wert in die "Tabelle2" überträgt, erst beim zweiten Durchgang wird ein Wert übernommen und zwar der, der im ersten Durchgang eigtl. erscheinen hätte müssen aber eine Zeile darunter in Zelle(6,4). D.h. die erste Zelle (5,4) wo eigtl. der erste Wert erscheinen sollte, wird nie befüllt. Außerdem kann ich in meiner Combobox2 einen beliebigen Wert auswählen, es wird trotzdem immer nur auf die erste Zeile der Datensätze in Tabelle 1 zugegriffen und in "Tabelle2" übertragen. Ich vermute das meine Suchfunktion nicht korrekt im Code integriert ist, hab ein paar Möglichkeiten ausprobiert aber dann kamen nur noch mehr Fehlermeldungen.

    Über die Combobox1 die sich ebenfalls auf dem "Tabellenblatt3" befindet, soll das gleiche umgesetzt werden, ich wollte es jedoch erst einmal mit der Combobox2 ausprobieren ob der Code funktioniert.

    Meine VBA Kenntnisse sind leider nicht sehr gut, vllt. kann mir ja jemand weiterhelfen, wie ich meinen Code umschreiben müsste, damit es funktioniert, danke :).

    Gruß
    Mark
    Dateien
    • Datei_1.1.xls

      (186,88 kB, 240 mal heruntergeladen, zuletzt: )