Ausblenden von Spalten basierend auf einem Zellenwert (Microsoft Excel)
Mit den hervorragenden Funktionen zur bedingten Formatierung von Excel können Sie die Formatierung von Zellen basierend auf dem Inhalt einer Zelle ändern. Leider gibt es keine Möglichkeit, ganze Datenspalten basierend auf dem Wert einer bestimmten Zelle einfach auszublenden.
Sie können jedoch den gewünschten Effekt erzielen, indem Sie die Zelle mithilfe eines Makros analysieren und das Attribut Hidden der Zeile anpassen, die Sie bedingt ausblenden möchten. Das folgende einfache Makro untersucht beispielsweise den Inhalt von Zelle B4 und verbirgt, wenn die Zelle 0 enthält, Spalte H. Wenn Zelle B4 keine 0 enthält, wird Spalte H angezeigt.
Sub HideColumn1() If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
Wenn Sie möchten, dass das Ein- und Ausblenden der Spalte in Echtzeit erfolgt, können Sie die folgende Version des Makros verwenden. Stellen Sie einfach sicher, dass Sie diese Version in das Codefenster für das Arbeitsblatt einfügen, auf dem sie funktionieren soll.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
Beachten Sie, dass die Eingeweide der beiden Makros gleich sind. Der einzige Unterschied besteht darin, dass die zweite Version durch ein Ereignis in Excel ausgelöst wird – das Ändern der aktuell ausgewählten Zelle. Dies bedeutet, dass jedes Mal, wenn Sie von einer Zelle in eine andere wechseln, der Wert in B4 überprüft wird und Spalte H entweder ausgeblendet oder nicht ausgeblendet wird.
Wenn es möglich ist, dass der Inhalt der Zelle B4 leer ist, interpretiert Excel diese Leere möglicherweise als Nullwert. In diesem Fall können Sie das Makro nur ein wenig ändern, damit es nach einer leeren Zelle sucht.
Sub HideColumn2() Dim rCell As Range Set rCell = Range("B4") Columns("H").EntireColumn.Hidden = False If (Not IsEmpty(rCell)) And (IsNumeric(rCell) And (rCell.Value = 0) Then Columns("H").EntireColumn.Hidden = True End If End Sub
Diese Version des Makros überprüft tatsächlich drei Bedingungen: dass B4 nicht leer ist, dass es einen numerischen Wert enthält und dass der Wert 0 ist. Wenn alle drei dieser Bedingungen erfüllt sind, wird Spalte H ausgeblendet.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3283) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: