Da es hier ja wohl weniger darum geht, massenhaft Klausuren und Zeugnisse auszuwerten, sondern mehr die Ergebnisse von Klausuren zu erfassen um am Ende des Ausbildungsjahres Zeugnisse erstellen zu können, habe ich weniger Probleme mit der Anzahl der Tabellenblätter. Allerdings waren die wohl eher nicht dafür geeignet, um die "Pflegekräfte" (Hier, die Personen, die Ergebnisse von Klausuren eintragen sollen) in Begeisterung zu versetzen.
Zur Pflege der Teilnehmer eines Kurses, gibt es nun das Tabellenblatt "Tn" (Teilnehmer). Alle anderen ziehen sich die notwendigen Daten von dort. Da ich davon ausgehe, dass die Tabellen nie sortiert werden, geschieht dies mit festen Zuordnungen, anstatt mittels Index/Vergleich.
Bereits in der Ersten Version hat ja die Makrosteuerung zum automatischen filtern und ausblenden nicht benötigter Zeilen und Spalten gut funktioniert. Wenn aber die Tabellenblätter och nicht fertig sind, oder diese wegen Änderungen der Ausbildungspläne angepasst werdne müssen, dann ist es sehr lästig, wenn nach jeder Blattaktivierung wieder eingeblendet und der Filter gelöscht werden muss, damit Formeländerungen für das gesamte Blatt durchgeführt werden können.
Deshalb habe die dazu das Tabellenblatt "Custom" (Customizing) angelegt. in Diesem kann nun von außen gesteuert werden, welche Aktionen durchgeführt werden sollen.
Im Makro "Filter_Field_3" wird nun als Erstes geprüft, in dem auslösendem Tabellenblatt auch eine formatierte Tabelle enthalten ist.
Weiterhin wird nun geprüft, ob sich auf der auszublenden Zeile 6 auch tatsächlich die Kopfzeile der Ersten formatierten Tabelle befindet und ob sich die Filterspalte auch auf Spalte "C" befindet.
Nur dann werden die  Aktionen in "Custom" aktivierten Funktionen auch ausgeführt.
Nicht realisiert habe ich den Blattschutz, damit noch etwas Arbeit für den Fragesteller übrig bleibt. Hierbei ist allerdings zu beachten, dass dieser dann zu Beginn des Makros deaktiviert und am Ende des Makros wieder aktiviert werden muss, den Aktionen wie filtern und ein-/ausblenden, funktionieren nur, wenn das Tabellenblatt, bzw. die formatierte Tabelle nicht geschützt ist.
Zur Verringerung des Risikos, dass mal Ergebnisse im falschen Ausbildungsjahr eingetragen werden, habe ich diese mit einer Farbmarkierung versehen. 
Code:
Sub Filter_Field_3()
Dim Anz As Integer
Dim Header_Row As Integer
Dim Filter_Col As String
'   Wenn das Tabellenblatt mindestns eine formatierte Tabelle enthält,
'   wird die Erste für die weiteren Aktionen berücksichtigt.
    
    Anz = ActiveSheet.ListObjects.Count
    If Anz = 0 Then
       Exit Sub
    End If
    
    Header_Row = ActiveSheet.ListObjects(1).HeaderRowRange.Row
    Filter_Col = ActiveSheet.ListObjects(1).HeaderRowRange.Columns(3)
'   Filtern und/oder ausblenden nur, wenn der LO-Header Zeile  = 6
'                                    und Titel von Col3 = "Filter" ist
 
    If Header_Row <> 6 Or _
       Filter_Col <> "Filter" Then
       Exit Sub
    End If
    Application.ScreenUpdating = False
     
'   Filtern und ausblenden nur, wenn im Tabellenblatt "Custom"
'                                    die Parameter auf "Ja" stehen
     
     If Range("p_Filter") = "Ja" Then
        ActiveSheet.ListObjects(1).Range.AutoFilter Field:=3, Criteria1:="=Ja", Operator:=xlAnd
     End If
     If Range("p_Hide_C") = "Ja" Then
        Columns("C:C").Hidden = True
     End If
     If Range("p_Hide_6") = "Ja" Then
        Rows("6:6").Hidden = True
     End If
    Application.ScreenUpdating = True
End Sub