ComboBox automatisch beim Öffnen der Excel-Datei füllen

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Higlav.

    ComboBox automatisch beim Öffnen der Excel-Datei füllen

    Hallo,

    habe folgendes Problem. Ich habe auf dem Tabellenblatt "Start" eine ComboBox, die beim Öffnen der Datei automatisch mit den Tabellenblättern gefüllt werden soll. Nach der Auswahl soll das Tabellenblatt angezeigt werden. Das funktioniert soweit auch, außer das meine ComboBox beim Öffnen der Datei leer ist. Diese füllt sich nur, wenn ich direkt im VBA Editor den Code mit F8 durchgehe. Weiterhin sollen die ausgeblendeten Tabellenblätter sowie das Tabellenblatt "Start" nicht in der ComboBox zur Auswahl stehen. Anbei mein bisheriger Code:

    Quellcode

    1. Private Sub Workbook_Open()
    2. Dim sh As Worksheet
    3. For Each sh In ActiveWorkbook.Worksheets
    4. Worksheets("Start").ComboBox1.AddItem sh.Name
    5. Next
    6. End Sub
    7. Private Sub ComboBox1_Click()
    8. Sheets(ComboBox1.ListIndex + 1).Activate
    9. End Sub


    Vielen Dank vorab!
    Hallo keep:),

    In "DieseArbeitsmappe":

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub Workbook_Open()
    3. Dim sh As Worksheet
    4. For Each sh In ThisWorkbook.Worksheets
    5. Worksheets("Start").ComboBox1.AddItem sh.Name
    6. Next
    7. End Sub

    Ins Tabellenmodul "Start":

    Visual Basic-Quellcode

    1. Option Explicit
    2. Private Sub ComboBox1_Click()
    3. Sheets(ComboBox1.ListIndex + 1).Activate
    4. End Sub


    Grüsse

    Higlav

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Higlav“ ()

    Habe es im Modul eingefügt:

    Quellcode

    1. Public Sub ComboFuellen()
    2. Dim sh As Worksheet
    3. For Each sh In ActiveWorkbook.Worksheets
    4. Worksheets("Start").ComboBox1.AddItem sh.Name
    5. Next
    6. End Sub


    Das Einzige was noch nicht funktioniert ist, dass das Tabellenblatt "Start" in der Auswahl nicht mit eingelesen wird.

    Danke für die Hilfe!
    Hm? bei mir hat's mit meiner Methode geklappt:

    EDIT: Die Prozedur, die das Auswählen eines Items in der Combobox handelt muss natürlich nicht in "DieseArbeitsmappe" sondern in das Tabellenmodul *Angepasst*
    EDIT2: Ich hab' jetzt mein Gebastel vereinfacht und der Code wird auch dann ausgeführt, wenn er direkt in besagtem Eventhandler steht. *Angepasst*

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

    Bei mir hat es mit Sub Pulic im Modul ebenfalls funktioniert. Im Modul "DieseArbeitsmappe" habe ich folgenden Code:

    Visual Basic-Quellcode

    1. Private Sub Workbook_Open()
    2. Sheets("Start").ScrollArea = "A$1:$N$45"
    3. Application.DisplayFullScreen = True
    4. Tabelle3.Activate
    5. ComboFuellen
    6. End Sub


    Die ersten 3 Zeilen sind außer acht zu lassen.

    Im Modul Tabelle3(Start) habe ich dann die Selektion:

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Click()
    2. Sheets(ComboBox1.ListIndex + 1).Activate
    3. End Sub


    Was zu guter letzt fehlt ist, dass das Tabellenblatt "Start" auf dem die ComboBox liegt, nicht mit in die Befüllung der ComboBox soll.
    Ahh, in dem Fall hab' ich dich falsch verstanden.
    Dann frag' vor dem Befüllen in der Schleife ab, ob sh.Name <> "Start" ist.
    Eher so:

    Visual Basic-Quellcode

    1. For Each sh In ThisWorkbook.Worksheets
    2. If sh <> Worksheets("Start") Then Worksheets("Start").ComboBox1.AddItem sh.Name
    3. Next

    Das müsste so ja funktionieren...