Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblätter ausblenden

Tabellenblätter ausblenden
16.03.2023 20:23:18
Dilek

Hallo zusammen,

leider habe ich mal wieder ein Anliegen. 

Ich habe eine Datei mit mehreren Tabellenblättern. Ein Blatt ist meine Gesamtübersicht aller vorhandenen Tabellenblätter in dieser Datei und eins meine Vorlage und die restlichen sind meine Arbeitsblätter. 

Wenn jetzt bei einem Tabellenblatt in AY35 ein „Ja“ steht, dann soll das Tabellenblatt als auch die entspr. Zeile in der Gesamtübersicht ausgeblendet werden. 

Wenn ich jetzt in meinem Suchfenster /-zeile C1 in der Gesamtübersicht das ausgeblendete Tabellenblatt suche, soll es wieder in der Gesamtübersicht als auch das Tabellenblatt im Original wieder angezeigt werden. 

https://www.herber.de/forum/archiv/1888to1892/1888457_Tabellenblaetter_ausblenden_und_trotzdem.html 

In o. g. Thread konntet Ihr bzw. Onur mir damals wie immer super helfen. 

Jetzt habe ich dieses Makro in eine neue Tabelle eingefügt und es funktioniert nicht. Ich finde den Fehler einfach nicht. Damals sollte das Makro ausgeführt werden, wenn bei AF3 ein „Ja“ steht und diesmal bei AY35.  Vielleicht liegt es jetzt daran, dass in AY35 eine Formel steht, wodurch das Tabellenblatt bestimmt wird oder das AY35 + AY36 verbunden sind. 

Hier die Beispiel Datei 
https://www.herber.de/bbs/user/158290.xlsm

Das Makro zum ausblenden ist wie folgt

Private Sub Workbook_Open()

 

End Sub

 

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)

     If Left(sh.Name, 2) > "PO" Then Exit Sub

     If Target.Address > "$Ay$35" Then Exit Sub

     If LCase(Target) = "ja" Then sh.Visible = False

     Dim z

     With Tabelle1

         For z = 3 To 1000

               If .Cells(z, 2) > "" And .Cells(z, 2) = sh.Name Then .Cells(z, 2).EntireRow.Hidden = True

          Next z

          .Activate

     End With

End Sub


Würde mich echt freuen, wenn ihr mir wieder helfen könntet. Vorab vielen Dank.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter ausblenden
16.03.2023 20:53:43
ralf_b
Wie würdest du diesen Vergleich deuten? Ist das gleich oder eher nicht?

$AY$35  = "$Ay$35"


AW: Tabellenblätter ausblenden
16.03.2023 21:18:58
Dilek
Hallo Ralf,

Vielen Dank für die Antwort. Ich stehe gerade voll auf dem Schlauch…
Ich weiß nicht wo ich $AY$35 = "$Ay$35" eingesetzt habe.


AW: Tabellenblätter ausblenden
16.03.2023 22:27:43
Yal
Hallo Dilek,

es muss Dir bewusst sein, dass der Vergleich von Zeichenkette Case-sensitiv ist. Und dass Target.Address immer ... grossgeschrieben liefert! Also vergleiche gegen $AY$35 und nicht $Ay$35 oder $aY$35 oder $ay$35

Leerzeilen erhöhen nicht die Lesbarkeit. Im Gegenteil.

If .Cells(z, 2) > "" And .Cells(z, 2) = sh.Name Then
Da der Name eines Blattes nicht leer sein darf, wenn .Cells(z, 2) = sh.Name bedeutet, dass .Cells(z, 2) > "". Also ist der erste Teil nutzlos.

Z ist die Nummer der Zeile, also
.Cells(z, 2).EntireRow.Hidden = True
ist kürzbar:
.Rows(z).Hidden = True
Man kann sogar spielen (achtung, nicht besser):
.Rows(z).Hidden = (.Cells(z, 2) = sh.Name)
alles zusammen
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
Dim z
    If Left(sh.Name, 2) > "PO" Then Exit Sub
    If Target.Address > "$AY$35" Then Exit Sub
    If LCase(Target) = "ja" Then sh.Visible = False
    With Tabelle1
        For z = 3 To 1000
            .Rows(z).Hidden = (.Cells(z, 2) = sh.Name)
        Next z
        .Activate
    End With
End Sub
VG
Yal


Anzeige
Denkfehler
16.03.2023 22:33:34
Yal
Nicht nur "nicht besser", sondern unter Umstand falsch:

was ist die Unterschied zwischen
If .Cells(z, 2) = sh.Name Then .Rows(z).Hidden = True
und
.Rows(z).Hidden = (.Cells(z, 2) = sh.Name)
?

Im erste Fall werden Zeilen ausgeblendet, wenn die Bedingung erfüllt ist.
Beim zweiten auch, ABER ... Zeilen werden eingeblendet, wenn die Bedingung nicht erfüllt ist.
Spricht Zeilen, die vorher vielleicht ausgeblendet waren, wären danach sichtbar.

Also Denkfehler von mir. Aber aus Fehler wird man schlau. Vor allem aus eigenen.

VG
Yal


Anzeige
AW: Tabellenblätter ausblenden
16.03.2023 22:28:21
ralf_b
hast du nicht , aber wenn du auf target.Address > Ay35 prüfst wird das immer zutreffen wenn da "y" für den Vergleich klein geschrieben wird.


AW: Tabellenblätter ausblenden
17.03.2023 07:54:57
Dilek
Guten Morgen zusammen,

vielen Dank für eure Hilfe. Ich wäre NIE aber wirklich NIE darauf gekommen, dass es an diesem kleingeschriebenen y liegt.
Vielen Dank nochmals.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige