Combobox o. Listenfeld füllen mit Tabellenblättern
#1
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


Angehängte Dateien
.xlsm   Test Combobox.xlsm (Größe: 42,47 KB / Downloads: 6)
Antworten Top
#2
Gleichartige Daten sollten in nur einem Arbeitsblatt gespeichert werden.
Verzichte auf 'splitten' von Daten.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
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
Antworten Top
#4
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
Antworten Top
#5
Schau mal wie einfach:

https://www.snb-vba.eu/VBA_Fill_combobox...ml#L_2.3.1
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hi Uwe,

ich habe deinen Code eingefügt, Es werden alle Tabellenblätter angezeigt, aber der Rest übersteigt mein Können Huh


Angehängte Dateien
.xlsm   Test Combobox.xlsm (Größe: 50,21 KB / Downloads: 3)
Antworten Top
#7
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
Antworten Top
#8
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


Angehängte Dateien
.xlsm   Test Combobox(1).xlsm (Größe: 45,16 KB / Downloads: 8)
Antworten Top
#9
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!!!


Angehängte Dateien
.xlsm   Uwe Combobox.xlsm (Größe: 52,65 KB / Downloads: 4)
Antworten Top
#10
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


Angehängte Dateien
.xlsm   Auswahl Tabellenblätter.xlsm (Größe: 63,99 KB / Downloads: 16)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste