Hallo,
ich bin kein VBA Profi.
Wenn ich das richtig erfasst habe vergibst Du einen BereichsNamen der Spalten und Zeilen beinhaltet z.B. (K:R;77-80;89-92).
Dann kann aus meiner Sicht ein "EntireRow" auch nicht funktionieren, da deine ausgewählte Spalte jede Zeile beinhaltet. Ergo wird alles ausgeblendet.
Mit "EntireColumn" wird es auch nicht gehen, da mit Zeile x jede Zelle der Zeile "markiert" ist.
Lösungsvorschlag:
Bereichsnamen aufteilen in Zeilen und ein weiterer Bereichsname für Spalten - also 2 Bereichsnamen in denen jeweils nur Spalten oder Zeilen drin sind. Fertig....
Staffel_Spalte = K:R
Staffel_Zeile = 77-80;89-92
- Code: Alles auswählen
Sub Staffelpreise_ein_ausblenden()
Range("Staffel_Spalte").EntireColumn.Hidden = Not Range("Staffel_Spalte").EntireColumn.Hidden
Range("Staffel_Zeile").EntireRow.Hidden = Not Range("Staffel_Zeile").EntireRow.Hidden
End Sub
Alternativ kannst Du Dir den Namensmanager auch sparen und den Bereich ordentlich in Variablen direkt in VBA festlegen.
- Code: Alles auswählen
Sub Staffelpreise_ein_ausblenden()
Dim rngStaffel_Spalte As Range, rngStaffel_Zeile As Range
Set rngStaffel_Spalte = Range("K:R")
Set rngStaffel_Zeile = Range("77:80,89:92")
rngStaffel_Spalte.EntireColumn.Hidden = Not rngStaffel_Spalte.EntireColumn.Hidden
rngStaffel_Zeile.EntireRow.Hidden = Not rngStaffel_Zeile.EntireRow.Hidden
End Sub
VG
Kinopio