2017-11-07 1 views
0

In einem Arbeitsblatt, "Szenarien", versuche ich Gruppen von ganzen Zeilen ausblenden, basierend darauf, ob der Zellwert in Spalte B für diese Gruppe von Zeilen ist enthält den Text "nicht enthalten". Zum Beispiel habe ich im Bereich B19: B77 Abschnitte für Konten in jeweils 5 Reihen. Die erste Zeile in jedem Abschnitt hat entweder den Kontonamen oder "nicht enthalten". Wenn "Nicht enthalten" angezeigt wird, möchte ich diese Zeile und die nachfolgenden 4 Zeilen (z. B. Zeilen 19 bis 23) ausblenden. Mir ist bewusst, wie ganze Zeilen basierend auf dem Wert einer Zelle (Code unten) ausgeblendet werden, aber ich würde gerne herausfinden, wie die zusätzlichen Zeilen ausgeblendet werden.Wenn eine Zelle leer ist, verstecken Sie die nächsten n Zeilen, VBA

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.ScreenUpdating = False 
     For Each xRg In Range("B19:B77") 
      If xRg.Value = "" Then 
       xRg.EntireRow.Hidden = True 
      Else 
       xRg.EntireRow.Hidden = False 
      End If 
     Next xRg 
    Application.ScreenUpdating = True 
End Sub 

Vielen Dank für Ihre Hilfe, im Voraus!

Antwort

2

Die For Schleife etwas aussehen könnte:

Dim r As Long 
For r = 19 To 77 Step 5 
    Rows(r & ":" r + 4).Hidden = Cells(r, "B").Value = "not included" 
Next 

Hinweis: Das 77 seltsam aussieht. Wenn alles in Gruppen von 5 Zeilen ist, ist Ihr letzter "Kontoname" in Zeile 74, was bedeutet, dass die letzte Gruppe nur 4 Zeilen zu sein scheint (74 bis 77).

+0

Brilliant! Vielen Dank!! Ich habe nur geringfügig geändert: – sophiesworld

+0

Privat Sub Worksheet_Activate() Dim r As Long Application.ScreenUpdating = False Für r = 19 bis 73 Schritt 5 Zeilen (r & ":" & r + 4) .hidden = Cells (r , "B"). Value = "nicht enthalten" Weiter Application.ScreenUpdating = True End Sub – sophiesworld

+0

würde ich 'Zeilen (r) .Resize (5) .hidden = Cells (r, "B" bevorzugen) .Wert = "nicht enthalten", aber das funktioniert +1 –

Verwandte Themen