Hallo! Also auf Blatt 1 ist auch die Listbox (gehe mal vom ActiveX Element aus). Dann füge mal ein Modul ein und dort diesen Code:
Option Explicit
Sub listboxfüllen()
Dim blatt
Dim eintrag As Long
Dim spalten As Long
Dim i As Long
eintrag = 0
For Each blatt In ActiveWorkbook.Worksheets
If blatt.Name <> "Tabelle1" Then
spalten = blatt.Cells(35, Columns.Count).End(xlToLeft).Column
If spalten > 1 Then
For i = 2 To spalten
Worksheets(1).ListBox1.AddItem
Worksheets(1).ListBox1.List(eintrag, 0) = blatt.Cells(35, i)
Worksheets(1).ListBox1.List(eintrag, 1) = blatt.Name
eintrag = eintrag + 1
Next i
End If
End If
Next blatt
End Sub
Und unter diese Arbeitsmappse diese Codes:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Worksheets(1).ListBox1.Clear
Call listboxfüllen
End Sub
Private Sub Workbook_Open()
Worksheets(1).ListBox1.ColumnCount = 2
Worksheets(1).ListBox1.ColumnWidths = "10cm;0cm"
Call listboxfüllen
End Sub
und zu guter letzt bei Tabelle 1 noch das hier:
Private Sub ListBox1_Click()
Worksheets(Worksheets(1).ListBox1.List(Worksheets(1).ListBox1.ListIndex, 1)).Activate
End Sub
Private Sub Worksheet_Activate()
Worksheets(1).ListBox1.Clear
Call listboxfüllen
End Sub
Damit wird dann beim Start, wenn ein BLatt eingefügt wurde bzw. du Blatt 1 aktivierst (Rückkehr nach Eintragen), die Sub listboxbefüllen aufgerufen. DIe holt sich automatisch die Daten. Die Listbox hat 2 Spalten wovon du nur eine siehst (also eine leere Listbox einfügen reicht). In Spalte 1 stehen die Nummern, in Spalte 2 die Blattnamen. Beim Anklicken einer Nummer wird das Blatt aktiviert.
VG
|