Clever-Excel-Forum

Normale Version: Combobox o. Listenfeld füllen mit Tabellenblättern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo ihr Excelprofis,

seit Tagen versuche ich mit anleitungen aus dem Internet, meine vorhandenen Tabellen (24Stück) in eine Userform zu bekommen. Entweder bekomme ich gar nichts angezeigt oder alle auf einmal.

Ausgangspunkt habe ich in einer Testtabelle angefügt!

Ich habe eine Tabelle mit 24 Tabellenblättern. Die Blende ich alle aus.

In der Userform 2021 sollen die 12 Blätter für das Jahr 2021 angezeigt werden (In meinem Fall Tabelle1 bis Tabelle12)
und in der anderen Userform 2022 die 12 Blätter für das Jahr 2022. (Tabelle13 bis Tabelle24)

Ich habe in meiner Testtabelle alle VBA Codes wieder entfernt, ist also Jungfräulich. Vieleicht setzt mir einer den passenden Code da rein. Ich bin ein absoluter VBA Anfänger und bekomme das nicht hin. Habe es auch mit listenfeld versucht, vergeblich.

Perfekt wäre auch noch wenn man sie anklicken kann und sie sich dann öffnet.

Vielen Dank
Gleichartige Daten sollten in nur einem Arbeitsblatt gespeichert werden.
Verzichte auf 'splitten' von Daten.
Hallo,

eine Datei mit einen vielen Arbeitsblätter, wo nichts drinsteht?? Wer soll da mit Code helfen.
Vielleicht mache es so:

- Markiere jede Tabelle systematisch durch alle Arbeitsblätter und mache eine intelligente Tabelle draus. Benenne der Einfachheit halber die Tabellen mit den gleichen Namen deiner Arbeitsblätter. Damit kommst du mit einer Combobox zurecht. Sollte auf deinen Arbeitsblättern mehrere Tabellen als nur jeweils eine vorhanden sein, brauchst du auf jeden Fall eine 2. Combobox deren Auswahl weiteren Codes bedarf.
- Zeichne eine Combobox in deine Userform und fülle Diese mit den Namen der Tabellenblätter.
-Zeichne eine Listbox
- Im letzten Schritt kann man die entsprechende Tabelle in ein Array laden und mittels listbox1.list mit diesem Code die Listbox füttern:


Code:
Option Explicit
Dim Tbl_BlattName As Variant

Private Sub ComboBox1_Change()
    Tbl_BlattName = ComboBox1.Text
    ListboxLaden
End Sub

Private Sub UserForm_Initialize()
    Dim Wks As Worksheet, i As Integer, Tbl_Blatt() As String
    For Each Wks In ThisWorkbook.Worksheets
        ReDim Preserve Tbl_Blatt(i)
        Tbl_Blatt(i) = Wks.Name
        i = i + 1
    Next Wks
    For i = LBound(Tbl_Blatt) To UBound(Tbl_Blatt)
        ComboBox1.AddItem Tbl_Blatt(i)
    Next i

End Sub

Private Sub ListboxLaden()
    Dim arrTab As Variant
    If Not Tbl_BlattName = "" Then
     arrTab = Sheets(Tbl_BlattName).ListObjects(Tbl_BlattName).DataBodyRange
   
        With ListBox1
            .Clear
            .List = arrTab
        End With
    End If
End Sub

Das ist ein möglicher, aber stark vereinfachte Lösungsweg.

Gruß Uwe
Vielen Dank für dein melden und deine Hilfe Uwe!

Ich versuche das jetzt mal so umzusetzen wie du es mir geschrieben hast.
PS
Das in den Tabellenblättern nix drin steht ist mir gar nicht aufgefallen....sorry Huh
Hi Uwe,

ich habe deinen Code eingefügt, Es werden alle Tabellenblätter angezeigt, aber der Rest übersteigt mein Können Huh
Ich schau mir das nach dem Frühstück mal an und bau dir nötige Anpassungen noch ein. Es war ja eigentlich nur stark vereinfachter Code, um einen möglichen Lösungsweg aufzuzeigen.

Gruß Uwe
Hab die die Userform zurecht gemacht. Diese startet mit dem öffnen der Datei links oben und kann jederzeit mit der F2 Taste wieder aufgerufen werden.

Gruß Uwe
Hallo Uwe, das ist schonmal die richtige Richtung. Nur ist es so.

Alle 24 Tabellenblätter werden später ausgeblendet, und es soll dann nur nach Auflistung des Jahres 2021 oder 2022 der einzelne Monat selektiert werden und geöffnet werden können. Hatte mich da wohl falsch rübergebracht. Blush 

Habe die Tabelle noch mal angehängt, mit Beschriftung der einzelnen Blätter.
Vielen Dank und großes Lob für deine Hilfe!!!
Hallo,

Anbei die Datei.

Nach Auswahl des Kalenderjahres werden die Tabellenblätter in die Comobox geladen, wo dann der entsprechende Monat ausgewählt werden kann.
Nach der Auswahl des Monats wird das entsprechende Tabellenblatt als einziges angezeigt.
Autostart bzw. F2 bleiben. Das sollte für deine Zwecke ausreichend sein.

Gruß Uwe
Seiten: 1 2 3