Hallo,
würde ich über "benannte Bereiche" machen.
Annahme: Deine Spaltenüberschriften stehen alle in Zeile 1
-Rechtsklick auf die jeweilige Zelle mit der Spaltenüberschrift
im aufgehenden Fenster wird ein Name für die Zelle definiert
vorgegeben ist schon die entsprechende Spaltenüberschrift
alles so belassen und auf ok klicken
diesen Vorgang für sämtliche Spaltenüberschriften wiederholen
Folgendes Makro in ein allgemeines Modul:
Code:
Public Sub aaa()
Dim strÜberschrift As String, xBereiche As Variant, boVorhanden As Boolean
strÜberschrift = InputBox("Spaltenüberschrift angeben:", "Ein-/Ausblenden")
If Not strÜberschrift = vbNullString Then
For i = 1 To Names.Count
If UCase(Names(i).Name) = UCase(strÜberschrift) Then
boVorhanden = True
If Range(strÜberschrift).EntireColumn.Hidden = True Then
Range(strÜberschrift).EntireColumn.Hidden = False
Else
Range(strÜberschrift).EntireColumn.Hidden = True
End If
Exit For
End If
Next i
End If
If Not boVorhanden Then
MsgBox "Es gibt keine Spalte " & strÜberschrift
End If
End Sub
Eine Befehlsschaltfläche aufs Tabellenblatt und diesem das Makro zuweisen.
Beim Klick auf die Befehlsschaltfläche öffnet sich eine Eingabemaske. Dort kannst du die Spaltenüberschrift eingeben. Ist die entsprechende Spalte ausgeblendet, dann wird sie eingeblendet, ist sie eingeblendet, dann wird sie ausgeblendet.
Gruß Werner