Microsoft Excel

Herbers Excel/VBA-Archiv

Zeile in allen Tabellenblättern ausblenden


Betrifft: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 09:38:49

Servus Zusammen,

ich bräuchte bitte eine Lösung für folgendes Problem.

Wenn in den Zellen ("K7:K22") eine 0 berechnet wird, soll in allen Tabellenblättern die jeweilige Zeile ausgeblendet werden.

Hab schon so ziemlich alles probiert und komme leider auf keine Lösung.

Meine VBA Kentnisse sind dafür leider viel zu schwach.

Danke schon mal für eure Bemühungen.

Schöne Grüße
Thomas

  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Nepumuk
Geschrieben am: 20.12.2018 10:29:21

Hallo Thomas,

wie wird der Bereich K7:K22 berechnet und in welcher Tabelle (die aktive, in irgendeiner, in einer bestimmten)???

Gruß
Nepumuk


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 11:21:01

Hallo Nepumuk,

es wird in der Zelle K... die Summe berechnet aus den Spalten B-I(=SUMME(B7:I7)).

Auf dem ersten Tabellenblatt.

Es soll dann beim Wert 0 die ganze Zeile auf diesem und 7 weiteren Tabellenblättern ausgeblendet werden.

Schöne Grüße
Thomas


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Nepumuk
Geschrieben am: 20.12.2018 11:53:48

Hallo Thomas,

ich bin etwas verwirrt. In deinem Eingangspost war die Rede von Zeile 7 bis 22. Ich habe es jetzt mal auf diese Zeilen ausgelegt:

Option Explicit

Private Sub Worksheet_Calculate()
    Dim ablnRowHidden(7 To 22) As Boolean
    Dim lngRowHidden As Long
    Dim objWorksheet As Worksheet
    For lngRowHidden = 7 To 22
        ablnRowHidden(lngRowHidden) = Application.Sum( _
            Range(Cells(lngRowHidden, 8), Cells(lngRowHidden, 9))) = 0
    Next
    For Each objWorksheet In ThisWorkbook.Worksheets
        For lngRowHidden = 7 To 22
            objWorksheet.Rows(lngRowHidden).Hidden = ablnRowHidden(lngRowHidden)
        Next
    Next
End Sub

Gruß
Nepumuk


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 12:53:14

Hallo Nepumuk,

wahrscheinlich hab ich mich da beim ersten mal etwas undeutlich ausgedrückt.

Ich beschreib es mal etwas genauer.

Ich habe ein Sheet mit dem Namen "Teilnehmer"
In dem lasse ich in jeder Zeile (7-22) die Spalten B-I(=SUMME(B7:I7))in der jeweiligen Zelle (K7-K22) zusammenrechen.
Wenn da 0 rauskommt dann soll die jeweilige Zeile ausgeblendet werden.
Und das eben dann auch auf den anderen Sheets
-"Abrechnung"
-"Geld ausgelegt"
-"Essen"
-"Übernachtungen"
-"Getränke"
-"Rücknahme"
-"Info"

Dein Makro sagt mir zur Zeit, dass es in der Arbeitsmappe nicht verfügbar ist.

Tut mir leid, dass ich solche Umstände mache.

Schöne Grüße
Thomas


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Nepumuk
Geschrieben am: 20.12.2018 14:23:00

Hallo Thomas,

kein Problem.

Einen Rechtsklick auf den Tabellenreiter der Tabelle "Teilnehmer" - Code anzeigen. In das sich öffnende Codefenster den folgenden Code kopieren:

Option Explicit

Private Sub Worksheet_Calculate()
    Dim ablnRowHidden(7 To 22) As Boolean
    Dim lngRowHidden As Long
    Dim vntWorksheetname As Variant
    For lngRowHidden = 7 To 22
        ablnRowHidden(lngRowHidden) = Cells(lngRowHidden, 11).Value = 0
    Next
    For Each vntWorksheetname In Array("Abrechnung", "Geld ausgelegt", "Essen", _
            "Übernachtungen", "Getränke", "Rücknahme", "Info")
        With ThisWorkbook.Worksheets(vntWorksheetname)
            For lngRowHidden = 7 To 22
                .Rows(lngRowHidden).Hidden = ablnRowHidden(lngRowHidden)
            Next
        End With
    Next
End Sub

Das Makro reagiert auf die Neuberechnung einer Formel in der Tabelle. Dazu einfach einen Wert in den Zellen B7 bis I22 anklicken, mit F2 in den Editiermodus gehen und Enter drücken.

Ich frage mich nur, wie willst du die Werte in den ausgeblendeten Zeilen ändern damit sie wieder eingeblendet werden? Oder sind das auch Formeln?

Gruß
Nepumuk


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 15:21:26

Hallo Nepumuk,

das ist eine gute Frage. :-)
Es wäre super, wenn es möglich wäre, dass sobald in der Zelle ein anderer Wert wie 0 auftaucht die Zeilen wieder eingeblendet werden.

Im Moment blendet das Makro bei einmal laufen lassen alle Zeilen auf den Tabellen Abrechnung bis Info aus, nur die Zeile 7 bleibt sichtbar. Egal ob 0 oder ein anderer Wert in der Zelle stehen.
auf der Teilnehmer Tabelle bleiben sie aber immer sichtbar.

Woran könnte das liegen?

Gruß
Thomas


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 15:25:57

Ich nochmal, hatte einen Fehler in meiner Tabelle.

Das Makro macht genau das was ich brauche. Perfekt!

Super, danke Dir

Gruß
Thomas


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Nepumuk
Geschrieben am: 20.12.2018 15:27:32

Hallo Thomas,

das Makro prüft den Wert in Zelle K7-K22 (Spalte 11) ob sie den Wert 0 enthalten. Wenn ja, dann wird die entsprechende Zelle ausgeblendet. Ändert sich der Wert auf ungleich 0 dann wird sie wieder eingeblendet.

Wenn das bei dir nicht klappt, dann lade mal eine Beispielmappe mit der Tabelle "Teilnehmer" hoch.

Gruß
Nepumuk


  

Betrifft: AW: Zeile in allen Tabellenblättern ausblenden
von: Thomas
Geschrieben am: 20.12.2018 15:39:22

Hallo Nepumuk,

ja, es funktioniert jetzt super, ich hatte einen Fehler in meiner Tabelle! Sorry!!!

Danke dir für die super schnelle Hilfe.

Schöne Grüße
Thomas