Hallo,
der Tipp von Gast 52455 wäre der übliche Weg das Problem anzugehen. Einfach im Change Event prüfen was in B27 steht und abhängig davon im code das Formelergebnis nachbauen. Manchmal ist ein Nachbau aber nicht möglich oder extrem kompliziert, wenn sich das Formelergebenis auf mehrere vorherige Formeln oder Eingaben bezieht. In dem Fall gibt es die Möglichkeit das Ausblenden ebenfalls per Formel zu machen.
Öffne den VBA-Editor z.B. mit Alt+F11. Füge über Menü Einfügen -> Modul ein neues Modul ein (z.B. Modul1) und gib dort diesen Code ein:
Option Private Module
Public r As Range
Public ausgebl As Boolean
Function ZeileAusblenden(Optional zeile As Variant)
If Application.Caller Is Nothing Then Exit Function
If IsMissing(zeile) Then
Set r = Application.Caller.EntireRow
ElseIf TypeName(zeile) = "Range" Then
Set r = zeile.EntireRow
ElseIf zeile > 0 Then
Set r = Application.Caller.Parent.Rows(zeile)
End If
ausgebl = True
ZeileAusblenden = IIf(ausgebl, "Ausgeblendet", "Eingeblendet")
End Function
Function ZeileEinblenden(Optional zeile As Variant)
If Application.Caller Is Nothing Then Exit Function
If IsMissing(zeile) Then
Set r = Application.Caller.EntireRow
ElseIf TypeName(zeile) = "Range" Then
Set r = zeile.EntireRow
ElseIf zeile > 0 Then
Set r = Application.Caller.Parent.Rows(zeile)
End If
ausgebl = False
ZeileEinblenden = IIf(ausgebl, "Ausgeblendet", "Eingeblendet")
End Function
Wechsle nun zum Modul "DieseArbeitsmappe" und gib dort diesen Code ein:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Not r Is Nothing Then
If Sh Is r.Parent Then
r.Hidden = ausgebl
End If
End If
End Sub
Gib nun im Arbeitsblatt an beliebiger Stelle eine der Folgenden Formeln ein (such dir eine Formel aus)
- blendet die Zeilen 44:45 aus bzw. ein.: =WENN(A44="";zeileausblenden(43:44);zeileeinblenden(43:44))
- blendet nur die Zeile 44 aus bzw. ein: =WENN(A44="";zeileausblenden(44);zeileeinblenden(44))
- blendet die Zeile aus bzw. ein, wo die Formel drin steht: =WENN(A44="";zeileausblenden();zeileeinblenden())
Gruß Mr. K.
|