AW: Mehrere Zeilen gleichzeitig ausblenden
20.05.2010 08:00:25
Peter
Hallo Erich
Ich habe die Variante 2 genommen un das hat auf Anhieb geklappt. (sicher wirst du ja festgestellt haben, dass ich die mit deiner Hilfe implementierte Funktion - Zeilen mit Nullen in bestimmten Spalten - nun verwende, um diese auszublenden. Vielen Dank für diesen super Support.
Ich habe zwei Anschlussfragen:
Ich habe noch das Berechnen ausgeschaltet und die Bildschirmaktualisierung ausgeschaltet, deshalb habe ich einen Errorhandler eingebaut, da ich nicht einfach so mit ~fExit Sub~f aus diesem Code aussteigen kann. Das scheint so zu funktionieren, wäre aber froh, wenn du das auch noch kritisch ansehen könntest.
Da das Ausblenden so gut geklappt hat, dachte ich, dass auch das Gegenteil gut klappt. Deshalb habe ich auch noch ein Zeilen_Einblenden Code versucht abzuleiten. Dieser funktioniert noch nicht, und wohl deshalb, weil in der Zelle benannt mit "NichtNull" nicht nur die Zeilennummern sondern, Zellbezüge, z.B. H13;H19;H44 oder vielleicht nur H17 steht. Nun ist mir nicht kar, was ich sonst noch anpassen muss, dass dann - beispielsweise bei den erwähnten Bezügen - die Zeilen 13;19 und 44 eingeblendet werden esp. die Zeile 17 eingeblendet wird.
Danke für eine gelegentliche Antwort und beste Grüsse,
Peter
Sub Zeilen_Ausblenden()
On Error GoTo ErrHandler:
Dim strAus As String, i, strF As String, strSheet As String, arrZ, rngAus As Range
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
strSheet = Range("AUS").Parent.Name
strF = ";"
strAus = Range("Null").Value 'i.d.R. ein String im Format "11;34;79"
If Not IsNumeric(Left(strAus, 1) * 1) Then GoTo ErrHandler 'falls erstes Zeichen keine Zahl
arrZ = Split(strAus, strF)
With Sheets(strSheet)
Set rngAus = .Cells(arrZ(0), 1)
For i = 1 To UBound(arrZ)
Set rngAus = Union(rngAus, .Cells(arrZ(i), 1))
Next
End With
rngAus.EntireRow.Hidden = True
GoTo ErrHandler
ErrHandler:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Exit Sub
End Sub
Sub Zeilen_Einblenden()
On Error GoTo ErrHandler:
Dim strEin As String, i, strF As String, strSheet As String, arrZ, RngEin As Range
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
strSheet = Range("EIN").Parent.Name
strF = ";"
strEin = Range("NichtNull").Value 'i.d.R. ein String im Format "11;34;79"
If Not IsNumeric(Right(strEin, 1) * 1) Then GoTo ErrHandler 'falls erstes Zeichen keine Zahl
arrZ = Split(strEin, strF)
With Sheets(strSheet)
Set RngEin = .Cells(arrZ(0), 1)
For i = 1 To UBound(arrZ)
Set RngEin = Union(RngEin, .Cells(arrZ(i), 1))
Next
End With
RngEin.EntireRow.Hidden = False
GoTo ErrHandler
ErrHandler:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Exit Sub
End Sub