Zeilen+Spalten zusammen per Makro ein-/ausblenden

Moderator: ModerationP

Zeilen+Spalten zusammen per Makro ein-/ausblenden

Beitragvon eislecke » 02. Dez 2020, 11:13

Hallo zusammen,

ich möchte mehrere Zeilen und Spalten zusammenhängend per Makro auf einem Button ein-/ausblenden.
In meinem Fall Zeile 77-80 + Zeile 89 - 92 und dazu die Spalten K - R

Hab alles markiert und einen Namen zugewiesen.
Nun bekomme ich beim ausführen des Makros ein Fehlerfeld mit "400".
Geht so etwas grundsätzlich nicht, weil sich die Bereiche überschneiden oder gibt es da eine Lösung?

Hier mein Code:
Code: Alles auswählen
Sub Staffelpreise_ein_ausblenden()
    Range("Staffelpreise").EntireRow.Hidden = Not Range("Staffelpreise").EntireRow.Hidden
End Sub


Würde mich über einen Tipp freuen. :)
Die meisten Menschen sind verwundert, wenn am Ende eines Satzes nicht das steht, was dort eigentlich stehen Bratwurst.
eislecke
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 137
Registriert: 25. Aug 2016, 09:33
Wohnort: Bayern

Re: Zeilen+Spalten zusammen per Makro ein-/ausblenden

Beitragvon Kinopio » 02. Dez 2020, 12:51

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
Menschen sind doof,
Steine sind OK,
EXCEL versteht :badgrin: :mrgreen:
Benutzeravatar
Kinopio
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 78
Registriert: 04. Apr 2013, 20:28

Re: Zeilen+Spalten zusammen per Makro ein-/ausblenden

Beitragvon eislecke » 04. Dez 2020, 11:26

Hallo Kinopio,

vielen Dank.
Das funktioniert super. :)
Hab mich jetzt für die Alternative entschieden, da mir das eleganter erscheint als über den Namensmanager.

Allerdings habe ich nun das Problem, dass ich das Blatt nicht mehr weiter kopieren kann.
Das Makro ändert dann natürlich nur die Zeilen/Spalten in dem Blatt/Tabelle, wo das Makro eingebunden ist und nicht mehr im weiter kopierten.
Kann man das evtl. noch anpassen?
Da stehe ich wieder mal auf dem Schlauch.

Vielen Dank nochmals.
Die meisten Menschen sind verwundert, wenn am Ende eines Satzes nicht das steht, was dort eigentlich stehen Bratwurst.
eislecke
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 137
Registriert: 25. Aug 2016, 09:33
Wohnort: Bayern

Re: Zeilen+Spalten zusammen per Makro ein-/ausblenden

Beitragvon Kinopio » 04. Dez 2020, 13:20

Hallo eislecke,

Ich hoffe ich habe dein Problem korrekt erkannt. Mach mal bitte so:

Code: Alles auswählen
Option Explicit

Sub Staffelpreise_ein_ausblenden()

Dim rngStaffel_Spalte As Range, rngStaffel_Zeile As Range
Set rngStaffel_Spalte = ActiveSheet.Range("K:R")
Set rngStaffel_Zeile = ActiveSheet.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


Neu ist "ACTIVESHEET" bei SET

VG
Kinpio
Menschen sind doof,
Steine sind OK,
EXCEL versteht :badgrin: :mrgreen:
Benutzeravatar
Kinopio
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 78
Registriert: 04. Apr 2013, 20:28

Re: Zeilen+Spalten zusammen per Makro ein-/ausblenden

Beitragvon eislecke » 07. Dez 2020, 07:41

Vielen vielen Dank.
Klappt wunderbar.
Manchmal ist die Lösung so einfach, aber man kommt einfach nicht weiter.

Danke für deine Hilfe. :)
Die meisten Menschen sind verwundert, wenn am Ende eines Satzes nicht das steht, was dort eigentlich stehen Bratwurst.
eislecke
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 137
Registriert: 25. Aug 2016, 09:33
Wohnort: Bayern


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste