Excel: Mit einem Kontrollkästchen Worksheet "X" öffnen

  • #1
F

falcon30

Bekanntes Mitglied
Themenersteller
Dabei seit
21.06.2005
Beiträge
94
Reaktionspunkte
0
Hallo Zusammen,

ich habe mehrere Worksheets in denen ich jeweils ein Kontrollkästchen habe. Mit einem Makro möchte ich auf ein WS springen:

Sub Auswahlmenue_Click()
Sheets(X).Select
End Sub

Wie schaffe ich es, dass alle Kontrollkästchen dieses Makro verwenden?

Vielen DAnk im Voraus!!

Grüße
falcon30
 
  • #2
Hallo falcon,

Entwurfmodus einschalten
Kontrollkästchen mit rechter maus anklicken -> Code anzeigen
Aufruf in die Click-Methode einfügen
Code:
Private Sub CheckBox1_Click()
 Call Auswahlmenue_Click
End Sub

Meinst du das ?

Gruß Matjes :)
 
  • #3
Hallo Matjes,

gibt es keine Möglichkeit den Makro einmal zu definieren, z.B. in DieseArbeitsmappe?

Grüße
falcon30
 
  • #4
Hallo falcon30,

auch das geht, ist nur etwas komplizierter ;D

Also als erstes legst Du ein Klassenmodul in deiner Mappe an und gibst den folgenden Code in das Modul ein.
Code:
Option Explicit
Public WithEvents KK As MSForms.CheckBox

Private Sub KK_Click()
 On Error Resume Next
 ThisWorkbook.Worksheets(cBLATTNAME_SPRUNGZIEL).Activate
 On Error GoTo 0
End Sub
Dann benennst Du das Klassenmodul im Eigenschaftsfenster um in Klasse_KK.

Jetzt fügst du ein Modul ein und kopierst folgenden Code hinein.
Code:
Option Explicit

Dim KKs() As New Klasse_KK

Private Const cOBJ_TYPE = Forms.CheckBox.1
Private Const cOBJ_NAME = CB_SPRUNG_X
Public Const cBLATTNAME_SPRUNGZIEL = Ziel

Sub KlasseKKFuellen()

 Dim ws As Worksheet, o As Object
 Dim KKsCnt As Long
 
 KKsCnt = 0: ReDim KKs(1 To 1)
 For Each ws In ThisWorkbook.Worksheets
  For Each o In ws.OLEObjects
   If o.progID = cOBJ_TYPE Then
    If o.Name = cOBJ_NAME Then
     KKsCnt = KKsCnt + 1: ReDim Preserve KKs(1 To KKsCnt)
     Set KKs(KKsCnt).KK = o.Object
    End If
   End If
  Next
 Next
AUFRAEUMEN:
 Set o = Nothing: Set ws = Nothing
End Sub
Zwei Konstanten darin müßtest du anpassen:
a) cBLATTNAME_SPRUNGZIEL
hier muß der Name des Blattes eingetragen werden, welches angesprungen werden soll.
b)cOBJ_NAME
hier muß der spezielle Name deiner Checkboxen, die bei Betätigung den Blattwechsel erzeugen solle, eingetragen werden. Du kannst ihn auch so lassen.
Jeder dafür vorgesehene Checkbox mußt du dann in den Eigenschaften diesen Namen geben.

Wenn du KlasseKKFuellen() ausführst und es fehlerfrei durchgelaufen ist, kannst du schon ausprobieren, ob das Anklicken einer solchen Checkbox den Blattwechsel auslöst. (Entwurfsmodus muß ausgeschaltet sein)

Damit das auch nach dem nächsten Öffnen der Datei zur Verfügung steht, Wird beim Öffnen der Datei das Makro einmal ausgeführt. Dazu fügst du folgenden Code in die Codeseite deiner Mappe (DieseArbeitsmappe).
Code:
Private Sub Workbook_Open()
 Call KlasseKKFuellen
End Sub

Grüße matjes ;)
 
  • #5
Hallo Matjes,

vielen Dank!!! :1

Grüße
falcon30
 
Thema:

Excel: Mit einem Kontrollkästchen Worksheet "X" öffnen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben