Spalten auf einem anderen Tabellenblatt abhänging von Zellwert ausblenden
#1
Hallo,
ich habe ein Tabellenblatt von dessen Werten in bestimmten Zellen ich Zeilen auf anderen Blättern per Checkboxklick ausblenden lasse.

Hierzu habe ich folgenden Code, der auch funktioniert:

Code:
Private Sub CheckBox1_Click()
    Dim schuelerzahl As Integer
    Dim i As Integer
    i = 0
    schuelerzahl = Cells(7, 3).Value
   
    If CheckBox1.Value = True Then
        i = schuelerzahl + 11
        Rows(i & ":" & 41).Hidden = True
       
        i = schuelerzahl + 2
        Sheets("LEB Text").Unprotect "Schiller"
        Tabelle15.Rows(i & ":" & 33).Hidden = True
        Sheets("LEB Text").Protect "Schiller"
       
        i = schuelerzahl * 4 + 6
        Sheets("KN 1").Unprotect "Schiller"
        Tabelle3.Rows(i & ":" & 133).Hidden = True
        Sheets("KN 1").Protect "Schiller"
       
        Sheets("KN 2").Unprotect "Schiller"
        Tabelle5.Rows(i & ":" & 133).Hidden = True
        Sheets("KN 2").Protect "Schiller"
       
        Sheets("KN 3").Unprotect "Schiller"
        Tabelle7.Rows(i & ":" & 133).Hidden = True
        Sheets("KN 3").Protect "Schiller"
       
        Sheets("KN 4").Unprotect "Schiller"
        Tabelle9.Rows(i & ":" & 133).Hidden = True
        Sheets("KN 4").Protect "Schiller"
       
        Sheets("KN 5").Unprotect "Schiller"
        Tabelle11.Rows(i & ":" & 133).Hidden = True
        Sheets("KN 5").Protect "Schiller"
       
        Sheets("Tests").Unprotect "Schiller"
        Tabelle13.Rows(i & ":" & 133).Hidden = True
        Sheets("Tests").Protect "Schiller"
             
    ElseIf CheckBox1.Value = False Then
        i = schuelerzahl + 11
        Rows(i & ":" & 41).Hidden = False
       
        i = schuelerzahl + 2
        Worksheets("LEB Text").Unprotect "Schiller"
        Tabelle15.Rows(i & ":" & 33).Hidden = False
        Sheets("LEB Text").Protect "Schiller"
       
        i = schuelerzahl * 4 + 6
        Sheets("KN 1").Unprotect "Schiller"
        Tabelle3.Rows(i & ":" & 133).Hidden = False
        Sheets("KN 1").Protect "Schiller"
       
        Sheets("KN 2").Unprotect "Schiller"
        Tabelle5.Rows(i & ":" & 133).Hidden = False
        Sheets("KN 2").Protect "Schiller"
       
        Sheets("KN 3").Unprotect "Schiller"
        Tabelle7.Rows(i & ":" & 133).Hidden = False
        Sheets("KN 3").Protect "Schiller"
       
        Sheets("KN 4").Unprotect "Schiller"
        Tabelle9.Rows(i & ":" & 133).Hidden = False
        Sheets("KN 4").Protect "Schiller"
       
        Sheets("KN 5").Unprotect "Schiller"
        Tabelle11.Rows(i & ":" & 133).Hidden = False
        Sheets("KN 5").Protect "Schiller"
       
        Sheets("Tests").Unprotect "Schiller"
        Tabelle13.Rows(i & ":" & 133).Hidden = False
        Sheets("Tests").Protect "Schiller"
             
    End If
End Sub

Nun möchte ich hinzu auf weiteren Tabellenblättern Spalten ausblenden lassen. Zu 1 Schülerzahl gehören immer 6 Spalten, angefangen von Spalte "G", also Schülerzahl "1" = G:L, Schülerzahl "2"= G:R, etc.
Ich dachte man könnte das auch so ausdrücken, was allerdings nicht funktioniert.

Code:
Private Sub CheckBox1_Click()
    Dim schuelerzahl As Integer
    Dim i As Integer
    i = 0
    schuelerzahl = Cells(7, 3).Value
   
    If CheckBox1.Value = True Then
      (...wie oben)
       
        i = schuelerzahl * 6 + 6
        Sheets("KR 1-Brief").Unprotect "Schiller"
        Tabelle20.Columns(i & ":" & "GP").Hidden = True
        Sheets("KR 1-Brief").Protect "Schiller"
       
    ElseIf CheckBox1.Value = False Then
      (...wie oben)
       
        i = schuelerzahl * 6 + 6
        Sheets("KR 1-Brief").Unprotect "Schiller"
        Tabelle20.Columns(i & ":" & "GP").Hidden = False
        Sheets("KR 1-Brief").Protect "Schiller"
       
    End If
End Sub

Das ganze muss bis Schülerzahl 31 laufen. Es geht immer um die gleichen Spalten auf 5 verschiedenen Tabellenblättern.
Man könnte es auch anders formulieren: Pro Schülerzahl sollen immer 6 Spalten mehr eingeblendet werden.
Ich danke für jede Hilfe!

Judith
Top
#2
Hallo Judith,

versuche es mal so

Code:
Private Sub CheckBox1_Click()
   Dim schuelerzahl As Integer
   Dim i As Long
   'unnötig
   'i = 0
   schuelerzahl = Cells(7, 3).Value
  
   If CheckBox1.Value = True Then
   '(...wie oben)
      
      i = schuelerzahl * 6 + 6
      Sheets("KR 1-Brief").Unprotect "Schiller"
      Tabelle20.Columns(i).reisze(199 - i).Hidden = True
      Sheets("KR 1-Brief").Protect "Schiller"
   'elseif hier unnötig
   Else
      
      i = schuelerzahl * 6 + 6
      Sheets("KR 1-Brief").Unprotect "Schiller"
      Tabelle20.Columns(i).Resize(, 199 - i).Hidden = False
      Sheets("KR 1-Brief").Protect "Schiller"
  
   End If
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#3
Leider nein ?  Confused

Die Spalten werden nich ausgeblendet.
Top
#4
Hallo,

ein Komma hatte ich vergessen Undecided

PHP-Code:
Private Sub CheckBox1_Click()
   
Dim schuelerzahl As Integer
   Dim i 
As Long
   
'unnötig
   '
0
   schuelerzahl 
Cells(73).Value
   
   
If CheckBox1.Value True Then
   
'(...wie oben)
      
      i = schuelerzahl * 6 + 6
      Sheets("KR 1-Brief").Unprotect "Schiller"
      Tabelle20.Columns(i).reisze(, 199 - i).Hidden = True
      Sheets("KR 1-Brief").Protect "Schiller"
   '
elseif hier unnötig
   
Else
      
      
schuelerzahl 6
      Sheets
("KR 1-Brief").Unprotect "Schiller"
      
Tabelle20.Columns(i).Resize(, 199 i).Hidden False
      Sheets
("KR 1-Brief").Protect "Schiller"
   
   
End If
End Sub 

Tabbel20 und KR 1-Brief sind identisch? Auf welchem Tabellenblatt steht die Schülerzahl? Eventuell hier noch das Worksheet mit dazunehmen.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • MrsB
Top
#5
Danke!
Ja, Tabellenblatt20 und der Name sind identisch!

Problem gelöst!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste