ComboBox füllen auf Basis der vorigen ComboBox Auswahl

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Acr0most.

    ComboBox füllen auf Basis der vorigen ComboBox Auswahl

    Hallo

    Ich habe ein Userform mit 2 ComboBoxen und ein paar Textboxen.
    In der ersten ComboBox ist die Auswahl fix eingestellt und beschränkt auf unegfähr 10 Wörter.
    Nun möchte ich gerne, dass auf Basis der Auswahl aus der ComboBox die zweite Combobox gefüllt wird.

    Ich habe ein Sheet mit folgenden Spalten: Maschine | Artikel | Lieferant | Menge
    Nun sind alle Maschine in der ComboBox1 erfasst als Wort. Es wird in dieser ComboBox eine Maschine ausgewählt
    und auf Basis dieser Auwahl soll dann alle zugehörigen Artikel in der zweiten ComboBox zu Auswahl stehen. Also
    muss sozusagen die Liste in Spalte A durchsucht werden nach der Maschinenbezeichnung und dann der zugehörige EIntrag aus Spalte B
    in die ComboBox hinzugefügt werden.
    Bei Auswahl des jeweiligen Artikels kann dann in einer Textbox der Lieferant (SPalte C) oder ähnliches ausgegeben werden.
    Leider habe ich keine rechte Idee wie ich die Spalte durchsuche und den zugehörigen Eintrag in die ComboBox fülle.
    Hoffe Ihr könnt hier helfen.
    Danke euch
    Hallo @TeamBob

    im Grunde könntest du, wenn du mit einer DataTable arbeiten würdest, den Wert der ersten ComboBox als Select-Statement verwenden um so die Einträge zu erhalten die du für die ausgesuchte Maschine brauchst.

    VB.NET-Quellcode

    1. deineTabelle.Select(Filterexpression)

    das ganze gibt ein Array aus DataRows zurück, die du dann durchgehst und mit deren Werten an Spalte X du die andere ComboBox füllst.

    Mit freundlichen Grüßen
    Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Ich wollte das eigentlich mit einer Art Suchfunktion lösen, die alle Zeilen durchgeht,
    und dann je nachdem wenn in Spalte A die richtige Maschien steht,
    er den Eintrag in Spalte B der ComboBox hinzufügt.

    Habe jetzt schon eine Schleif gebaut die soweit funktionier, aber bin nicht sicher ob es so optimal ist.

    Visual Basic-Quellcode

    1. Private Sub subFillArtikelliste()
    2. Dim Maschine As String
    3. Dim lngZeile As Long
    4. On Error Resume Next
    5. Dim wstTab As Worksheet
    6. Set wstTab = ThisWorkbook.Sheets("Bestandsmanagement")
    7. With wstTab
    8. lngZeile = 2 'Start in Zeile 2, Zeile 1 sind ja die Überschriften
    9. 'Schleife solange etwas in der Spalte in der Tabelle drin steht
    10. Do While Trim(CStr(.Cells(lngZeile, 1).Value)) <> ""
    11. Maschine = CStr(.Cells(lngZeile, 2))
    12. If Me.cbMaschine = Maschine Then
    13. Me.cbArtikel.AddItem (CStr(.Cells(lngZeile, 3)))
    14. End If
    15. lngZeile = lngZeile + 1 'Nächste Zeile bearbeiten
    16. Loop
    17. End With
    18. End Sub

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „TeamBob“ ()

    ist es ja im grunde..

    wenn du als Filter .select("maschine = XY"), also die eingabe verwendest, ist XY der Suchbegriff nach dem du die Tabelle durchsuchst.
    Wenn du das in das ItemChanged Event einträgst sind die Werte in ComboBox2 immer passend zu der Selektion der ersten ComboBox.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Acr0most“ ()