Ich habe in meiner Excel-Arbeitsmappe diverse Tabellenblätter.
Die können zwar einzeln angeklickt werden, aber ich möchte,
dass diese auch vom „Haupt“-Tabellenblatt geöffnet werden
können über verschiedene CommandButtons.
Hi Marcel,
k.A. warum da 2mal die Msgbox kommt, wenn man ein Blatt gelöscht hat.
Falls du den Code bei geöffnetem Editor testest kann es selten passieren (grad nach gelöschten Blättern, dass beim Umschalten auf Excelfenster, nicht das Blatt korrekt angezeigt wird, dann einfach im Editor die tt starten.
Rückmeldung von dir oder jmd. anders wie man diese Fehler abstellt und warum sie passieren wären nett, Danke.
Ansonsten brauchst du nur eine Combobox in Tablle1 anstelle vieler Commandbuttons und eine Tabelle die Tabelle3 heißt.
In Deiese Arbeitsmappe:
Option Explicit
Private Sub Workbook\_NewSheet(ByVal Sh As Object)
Application.EnableEvents = False
Call Einlesen
Application.EnableEvents = True
End Sub
Private Sub Workbook\_Open()
Application.EnableEvents = False
Call Einlesen
Application.EnableEvents = True
End Sub
In Tabelle1:
Option Explicit
Private Sub ComboBox1\_Change()
On Error GoTo ende
Application.EnableEvents = False
sgBox ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets("Tabelle3").Range("A65536").End(xlUp).Row ThisWorkbook.Worksheets.Count Then
Call Einlesen
MsgBox "Auswahl wurde geändert, bitte neu auswählen"
Exit Sub
End If
Worksheets(ComboBox1.Value).Activate
ende:
Application.EnableEvents = True
End Sub
Sub tt()
Application.EnableEvents = True
End Sub
In ein Modul:
Option Explicit
Sub Einlesen()
Dim zei As Long
On Error GoTo ende
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Tabelle3")
.UsedRange.ClearContents
For zei = 1 To ThisWorkbook.Worksheets.Count
.Cells(zei, 1) = ThisWorkbook.Worksheets(zei).Name
Next zei
Worksheets(1).ComboBox1.ListFillRange = "Tabelle3!A1:" & "A" & .Range("A65536").End(xlUp).Row
End With
ende:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard