Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen ausblenden, wenn ... erfüllt


Betrifft: Zeilen ausblenden, wenn ... erfüllt von: zaz
Geschrieben am: 13.08.2018 13:42:43

Hallo,

als Info vorab: leider habe ich bisher keine Erfahrungen mit VBA sammeln können. Ich möchte jede Zeile ausblenden, bei der alle Zellen der Zeile von Spalte B bis J nur 0en aufweisen. Diese Zellen beziehen sich auf andere Tabellenblätter. Das heißt nach jeder Änderung der anderen Tabellenblätter muss neu überprüft werden, welche Zeilen ausgeblendet und ggf. auch wieder eingeblendet werden müssen.
Mein Versuch:

Option Explicit

Sub Worksheet_SelectionChange(ByVal Target As Range)
'Zeile
Dim i As Long
'Spalte
Dim j As Long
'Hilfsrechnung
Dim z As Long
z = 0

For i = 6 To 73
    For j = 2 To 9
        If Cells(i, j) > 0 Then
            z = z + 1
    Next j
    
If z = 0 Then
    Cells(i, 1).EntireRow.Hidden = True
      Else
    Cells(i, 1).EntireRow.Hidden = False
End If

z = 0
Next i

End Sub
Es wäre sehr nett, wenn mir irgendwer weiterhelfen könnte.
Viele Grüße
Zaz

  

Betrifft: AW: Zeilen ausblenden, wenn ... erfüllt von: zaz
Geschrieben am: 13.08.2018 13:45:19

Dazu muss ich sagen, dass die Zellen keine negativen Werte annehmen werden. D.h. es kommt nur 0, NULL oder ein positiver Wert in Frage


  

Betrifft: AW: Zeilen ausblenden, wenn ... erfüllt von: Johannes Sigl
Geschrieben am: 13.08.2018 14:29:04

Hi Zaz,

schau mal, ob das so passt:

Sub ZeilenAufNullPrüfen()

Dim Rng As Range, cel As Range
Dim i As Byte

For i = 2 To 18

Set Rng = Worksheets(2).Range("B" & i, "J" & i)
    Rng.Select
    If WorksheetFunction.CountIf(Rng, "0") = 9 Then
        Worksheets(2).Cells(i, 1).EntireRow.Hidden = True
    Else
        Worksheets(2).Cells(i, 1).EntireRow.Hidden = False

    End If

Next i

End Sub



  

Betrifft: AW: Zeilen ausblenden, wenn ... erfüllt von: Johannes Sigl
Geschrieben am: 13.08.2018 14:39:30

Hi Zaz,

das rng.select sowie die Variable cel könntest du löschen.

Grüße


  

Betrifft: AW: Zeilen ausblenden, wenn ... erfüllt von: zaz
Geschrieben am: 14.08.2018 07:41:42

Danke erst mal für deine Hilfe. Ich hätte da noch ein paar Anfängerfragen:

1. Wieso läuft das i von 2 bis 18? es müssen ja die Zeilen von 6 bis 73 durchlaufen werden?

2. Was ist die Bedeutung von Worksheets(2)? Handelt es sich dabei um das zweite Tabellenblatt, d.h. muss ich die Zahl dann bei mir ggf. ändern?

3. Die Überprüfung soll ja bei jeder Änderung durchgeführt werden. Muss ich dann Sub Worksheet_SelectionChange(ByVal Target As Range) statt Sub ZeilenAufNullPrüfen() nutzen?

Danke schon mal für die Hilfe.

Viele Grüße zaz


Beiträge aus dem Excel-Forum zum Thema "Zeilen ausblenden, wenn ... erfüllt"