Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten Top
#3
Leider nein ?  Confused

Die Spalten werden nich ausgeblendet.
Antworten 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
Antworten Top
#5
Danke!
Ja, Tabellenblatt20 und der Name sind identisch!

Problem gelöst!
Antworten Top


Gehe zu:


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