Mit Auswahl in Combobox Tabelle suchen und Inhalt in andere Combobox festlegen

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von mad.marc.

    Mit Auswahl in Combobox Tabelle suchen und Inhalt in andere Combobox festlegen

    Hallo zusammen,

    ich bin auf der Suche nach einer Lösung für folgendes Problem:

    Ich habe eine Userform erstellt mit zwei Comboboxen. Combobox 1 dient der Auswahl der Kategorie (z. B. Kategorie A) und Combobox 2 soll dann die Inhalte der Kategorie A (z. B. Auto 1, Auto 2... ) also in Abhängigkeit anzeigen. Nun habe ich für jede Kategorie eine Tabelle in einem separaten Tabellenblatt erstellt. Soweit funktioniert das auch :). Nur mein Problem ist, dass ich keine Lösung finde, wie es ohne eine ständige Codierung löse, wenn ich eine neue Kategorie/Tabelle hinzufüge. Ich suche nach einer Möglichkeit, dass Excel selbst je nach Auswahl in Combobox 1 in einem anderen Tabellenblatt nach der entsprechenden Tabelle sucht und den Inhalt dieser Tabelle in Combobox 2 zur Verfügung stellt. Meine bisherige Lösung sieht so aus :/

    Private Sub KATGO_Change()

    Select Case KATGO.Value
    Case Is = "KATGO1" //Auswahl Combobox 1
    KATGOAUSW.RowSource = "TBKATGO1" // Tabellenname

    Case Is = "KATGO2"
    KATGOAUSW.RowSource = "TBKATGO2"

    Case Is = "KATGO3"
    KATGOAUSW.RowSource = "TBKATGO3"

    ...

    End Select

    End Sub

    Vielen Dank für eure Hilfe im Voraus.

    Cheers

    Visual Basic-Quellcode

    1. ​Private Sub KATGO_Change()
    2. If KATGO.Value Like "KATGO#*" Then KATGOAUSW.RowSource = "TB" & KATGO.Value
    3. End Sub
    Wenn du in deiner Combobox nur gültige Tabellenblätter drin hast und sich die Namenskonvention sinnvoll durchzieht, benötigst du nicht mal einen ErrorHandler.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Vielen Dank für die schnelle Antwort.

    Mir ist eben leider untergegangen zu schreiben, dass nicht alle Auswahlmöglichkeiten in Combobox 1 mit KATG01 beginnen und die Tabellen dementsprechend auch anders heißen.

    Z. Bsp.
    Case Is = "Verträge" // Auswahl in Combobox 1
    KATGOAUSW.RowSource = "TB_Vertäge" // Tabellenname
    ...

    Wie müsste dann der Code heißen? Ich hatte versucht nach dem Like "*String*" und am Ende "TB_" & *String* aber das funktioniert nicht :(!
    Ich merke grade, dass meine Formulierung zu schwammig war. Die Tabellen (Kategorien, Verträge...) sind alle auf dem selben Tabellenblatt. Den Tabellennamen und den Eintrag in Combobox 1 kann ich gerne gleich benennen. Combobox 2 soll nur anhand des Eintrags in Combobox 1 die richtige Tabelle auf dem Tabellenblatt dynamisch suchen und den Inhalt zur Auswahl zur Verfügung stellen. So das diese ständige Codierung, wenn eine neue Tabelle hinzukommt entfällt....

    Sau kompliziert der Kram :-D!