zur Beantwortung der Anfrage https://www.herber.de/forum/messages/543282.html
(Ein/Ausblenden von Blättern) hatte ich die Datei https://www.herber.de/bbs/user/15768.xls gebastelt die nur nachfolgenden Code enthält.
1 Frage: Mit .CheckBoxes.Add(... werden Checkboxen in Spalte B erstellt, warum steht da aufeinmal "KC" rechts neben den Checkboxen?
2 Frage: Warum entspricht das .Left einer Checkbox nicht dem .Left von der jweiligen B-Zelle? Die Checkbox ist ein bisschen in die Zelle gerückt.
3 Frage: In der kleinen Sub erhalte ich ja mit Application.Caller den Namen der betätigten Checkbox. Wie referenziere ich exakt? Alle Recherche und alle Versuche mit OleObjects , Object usw, wie bei Google entdeckt brachten mir nix:-( Ich will also den Zustand der Checkbox abfragen, von der ich durch Application.Caller weiß dass sie z.B. "BoxTabelle2" heisst.
Gruß
Reinhard
In Modul1:
Sub ListeErstellen()
Dim Zeile As Long
Zeile = 1
With Worksheets("Tabelle1")
.Columns("A").ClearContents
.Range("A1") = "Blattname"
.Range("B1") = "Eingeblendet"
For Each Kästchen In .Shapes
Kästchen.Delete
Next Kästchen
For Each Blatt In ThisWorkbook.Worksheets
If Blatt.Name <> "Tabelle1" Then
Worksheets(Blatt.Name).Visible = False
Zeile = Zeile + 1
.Cells(Zeile, 1) = Blatt.Name
.CheckBoxes.Add(.Cells(Zeile, 2).Left, .Cells(Zeile, 1).Top, 11.75, 11.75).Select
Selection.Name = "Box" & Blatt.Name
Selection.OnAction = "Auswerten"
End If
Next Blatt
.Range("A1").Select
End With
End Sub
Sub Auswerten()
Worksheets(Mid(Application.Caller, 4)).Visible = Not (Worksheets(Mid(Application.Caller, 4)).Visible)
End Sub
In DieseArbeitsmappe:
Private Sub Workbook_Open()
Call ListeErstellen
End Sub