Excel: Mit mehreren Checkboxen woksheets ein- bzw ausblenden

Dieses Thema Excel: Mit mehreren Checkboxen woksheets ein- bzw ausblenden im Forum "Windows XP Forum" wurde erstellt von falcon30, 22. Apr. 2008.

Thema: Excel: Mit mehreren Checkboxen woksheets ein- bzw ausblenden Hallo Zusammen, ich brauche dringend hilfe!! Ich habe ein Worksheet mit ca 30 Checkboxen. Mit den Checkboxen würde...

  1. Hallo Zusammen,

    ich brauche dringend hilfe!!

    Ich habe ein Worksheet mit ca 30 Checkboxen.
    Mit den Checkboxen würde ich gerne Worksheets die ein bzw. ausgeblendet werden sollen selektieren.

    Das aus- bzw. einblenden soll über zwei Optionsfleder erfolgen:
    Optionsfeld 1: alles Einblenden
    Optionsfeld 2: Selektierte WS ausblenden.
    Wie kann ich danach die selektierten WS mit einer Befehlsschaltfläche drucken bzw. eine Vorschau generieren?


    Wäre echt klasse wenn Ihr mir helfen könntet.

    Vielen Dank im Voraus.

    Grüße
    falcon30
     
  2. Hallo falcon30,

    die erste Frage, die sich stellt:
    Wie ergibt sich die Verbindung von einer Checkbox zu einem Worksheet ?
    a) feste programmierte Zuordnung (z.B. Checkbox-Name xyz --> Tabelle2)
    b) Tabellenname ist in der Checkbox-Eigenschaft Caption enthalten

    b) wäre zu bevorzugen

    Weitere Frage: gibt es auf dem Blatt noch weitere Checkboxen, die nicht zum Ein/Ausbenden der Blätter dienen sollen ?

    Gruß Matjes :)

    ps.schau mal in dein Postfach ;)
     
  3. Also die Beispiel-Datei besteht aus Folgendem:

    4 Blätter mit irgendwelchem Inhalt (nur nicht leer)
    Namen:
    Tab 0001
    Tab 0002
    Tab 0003
    Tab 0004

    1 Blatt
    Name: Master

    mit 4 Checkboxen
    Eigenschaften->Caption jeweils einen Tabellenblattnamen Tab 0001, Tab 0002, Tab 0003, Tab 0004

    mit 5 Option-Button
    a) Eigenschaften:
    Eigenschaften->Name : OB_nichtsmachen
    Eigenschaften->Caption : nichts machen
    Eigenschaften->GroupName: MasterOB
    b)
    Eigenschaften->Name : OB_ausblenden
    Eigenschaften->Caption : ausblenden
    Eigenschaften->GroupName: MasterOB
    c)
    Eigenschaften->Name : OB_allesEinblenden
    Eigenschaften->Caption : alles einblenden
    Eigenschaften->GroupName: MasterOB
    d)
    Eigenschaften->Name : OB_DruckVorschau
    Eigenschaften->Caption : Druck-Vorschau
    Eigenschaften->GroupName: MasterOB
    e)
    Eigenschaften->Name : OB_Druck
    Eigenschaften->Caption : drucken
    Eigenschaften->GroupName: MasterOB

    GroupName wird hier bei den Option-Button gesetzt, um zu erreichen, dass automatisch immer nur einer ausgewählt ist.

    In die Code-Seite des Master-Blattes muß dann folgender Code eingesetzt werden:
    Code:
    Option Explicit
    '************************************************************************************************
    Private Function TestChkBox(wsm As Worksheet, fBlattname() As String, fValue() As Boolean, fCnt As Long)
    '*** Makro sucht auf dem Arbeitsblatt alle Checkboxen
    '*** Caption der jeweiligen Checkbox wird geprüft, ob es einem Blattnamen entspricht
    '***  Wenn nein, erfolgt eine Meldung
    '*** Caption(also Blattname) und Value werden in Feldern gespeichert und zurückgegeben.
    
     Dim wsx As Worksheet, o As Object
     Dim sCaption As String
     ReDim fBlattname(1 To 1): ReDim fValue(1 To 1): fCnt = 0
     For Each o In wsm.OLEObjects
      If o.progID = Forms.CheckBox.1 Then
       sCaption = o.Object.Caption
       Set wsx = Nothing
       On Error Resume Next
       Set wsx = wsm.Parent.Worksheets(sCaption)
       On Error GoTo 0
       If wsx Is Nothing Then
        MsgBox _
         Caption in Checkbox enthält kein Blattnamen ! & vbLf & vbLf & _
         Datei-Name:-> & wsm.Parent.Name &-> & vbLf & _
         Blatt-Name:-> & wsm.Name &-> & vbLf & _
         CheckBox-Name:-> & o.Name &-> & vbLf & _
         Caption:-> & sCaption &->
       Else
        If wsx.Name = wsm.Name Then
         MsgBox 
        Else
         fCnt = fCnt + 1
         ReDim Preserve fBlattname(1 To fCnt)
         ReDim Preserve fValue(1 To fCnt)
         fBlattname(fCnt) = sCaption
         fValue(fCnt) = o.Object.Value
        End If
       End If
      End If
     Next
     Set wsx = Nothing: Set o = Nothing
    End Function
    '*************************************************
    Private Function MeinDrucken(bDrucken As Boolean)
    
     Dim fBlattname() As String, fValue() As Boolean, fCnt As Long
     Dim x As Long, bSichtbarGemacht As Boolean
     
     Call TestChkBox(Me, fBlattname(), fValue(), fCnt)
     
     If fCnt > 0 Then
      For x = 1 To fCnt
       If fValue(x) Then
        If Me.Parent.Worksheets(fBlattname(x)).Visible <> xlSheetVisible Then
         bSichtbarGemacht = True
         Me.Parent.Worksheets(fBlattname(x)).Visible = True
        Else
         bSichtbarGemacht = False
        End If
        If bDrucken Then
         Me.Parent.Worksheets(fBlattname(x)).Print
        Else
         Me.Parent.Worksheets(fBlattname(x)).PrintPreview
        End If
        If bSichtbarGemacht Then
         Me.Parent.Worksheets(fBlattname(x)).Visible = False
        End If
       End If
      Next
     End If
    
    End Function
    '*************************************************
    Private Sub OB_allesEinblenden_Click()
     Dim fBlattname() As String, fValue() As Boolean, fCnt As Long, x As Long
     
     Call TestChkBox(Me, fBlattname(), fValue(), fCnt)
     
     If fCnt > 0 Then
      Application.ScreenUpdating = False
      For x = 1 To fCnt
       Me.Parent.Worksheets(fBlattname(x)).Visible = True
      Next
      Application.ScreenUpdating = True
     End If
     Me.OB_nichtsmachen.Value = True
    End Sub
    '*************************************************
    Private Sub OB_ausblenden_Click()
     Dim fBlattname() As String, fValue() As Boolean, fCnt As Long, x As Long
     
     Call TestChkBox(Me, fBlattname(), fValue(), fCnt)
     
     If fCnt > 0 Then
      Application.ScreenUpdating = False
      For x = 1 To fCnt
       If fValue(x) Then
        Me.Parent.Worksheets(fBlattname(x)).Visible = False
       End If
      Next
      Application.ScreenUpdating = True
     End If
     Me.OB_nichtsmachen.Value = True
    End Sub
    '*************************************************
    Private Sub OB_Druck_Click()
     Call MeinDrucken(True)
     Me.OB_nichtsmachen.Value = True
    End Sub
    '*************************************************
    Private Sub OB_DruckVorschau_Click()
     Call MeinDrucken(False)
     Me.OB_nichtsmachen.Value = True
    End Sub
    '*************************************************
    Private Sub Worksheet_Activate()
     Me.OB_nichtsmachen.Value = True
    End Sub
    Gruß Matjes ;)
     
Die Seite wird geladen...

Excel: Mit mehreren Checkboxen woksheets ein- bzw ausblenden - Ähnliche Themen

Forum Datum
Excel Tabellen erstellen mit mehreren Prüfungen Microsoft Office Suite 28. Juli 2015
Excel: Filtern aus mehreren Arbeitsblättern mit Ergebniss in einem neuen AB Windows XP Forum 30. Jan. 2008
SVERWEIS zu mehreren Excel-Blättern Microsoft Office Suite 26. Apr. 2005
Werte aus mehreren Excel-Tabellen in einer Tabelle zusammenführen Microsoft Office Suite 14. Okt. 2004
Excel-Datei von mehreren Nutzern zu verwalten? Microsoft Office Suite 24. Apr. 2003