In meiner alltäglichen Arbeit mit Excel stehe ich oft vor der Herausforderung, Daten übersichtlich darzustellen. Ein häufiges Anliegen ist das dynamische Ausblenden bestimmter Zeilen, um nur die relevanten Informationen zu zeigen. Dies kann besonders nützlich sein, um Berichte oder Dashboards anwenderfreundlich zu gestalten. In diesem Artikel möchte ich eine VBA-Funktion vorstellen, die es ermöglicht, Zeilen basierend auf einer Benutzereingabe auszublenden und erweitern.

Kurzbeschreibung des Codes:

  • Die ZeilenAusblenden-Prozedur ermöglicht das dynamische Ein- und Ausblenden von Zeilen in einem Excel-Arbeitsblatt. Sie nimmt die Startzeile, die Anzahl der anzuzeigenden Zeilen und die maximale Zeilenanzahl als Parameter.
  • Die Worksheet_Change-Ereignisprozedur überwacht Änderungen in einer spezifizierten Zelle (hier E7). Bei einer Änderung wird die ZeilenAusblenden-Prozedur aufgerufen, um Zeilen basierend auf dem Wert in Zelle E7 ein- oder auszublenden.
  • Diese VBA-Lösung ist ideal für interaktive Berichte oder Dashboards, bei denen der Benutzer die angezeigte Datenmenge steuern kann.

Um die Funktion ZeilenAusblenden zu erweitern und ihr mehr Flexibilität beim Aus- und Einblenden von Zeilen zu geben, werde ich die Funktion umbenennen in ZeilenAusblendenExtended und einen zusätzlichen Parameter hinzufügen, der es ermöglicht, bestimmte Zeilen basierend auf Bedingungen ein- oder auszublenden. Hier ist der erweiterte und kommentierte VBA-Code:

Erweiterungen im Code:

  • Die Funktion ZeilenAusblendenExtended erhält einen zusätzlichen optionalen Parameter EinblendenBedingung.
  • Dieser Parameter ermöglicht es, die Logik des Ein- und Ausblendens zu steuern. Wenn EinblendenBedingung auf True gesetzt ist, werden alle Zeilen im definierten Bereich eingeblendet. Andernfalls funktioniert die Prozedur wie die ursprüngliche ZeilenAusblenden-Funktion, indem sie nur einen bestimmten Bereich von Zeilen anzeigt und den Rest ausblendet.
  • Dies bietet eine größere Flexibilität, insbesondere wenn unterschiedliche Szenarien in einem Bericht oder Dashboard dargestellt werden sollen.
' Blendet alle Zeilen nach der 20. Zeile aus, zeigt aber 10 Zeilen ab der 11. Zeile an
Call ZeilenAusblendenExtended(11, 10, 30, False)
' Blendet alle Zeilen im Bereich von der 5. bis zur 50. Zeile ein
Call ZeilenAusblendenExtended(5, 45, 50, True)
' Beginnt bei der 15. Zeile und blendet 20 Zeilen ein, danach werden die restlichen Zeilen bis zur 40. Zeile ausgeblendet
Call ZeilenAusblendenExtended(15, 20, 40, False)
' Zeigt die ersten 25 Zeilen an und blendet alle Zeilen danach bis zur 50. Zeile aus
Call ZeilenAusblendenExtended(1, 25, 50, False)

Dim benutzerAuswahl As Boolean
' ... Setzen von benutzerAuswahl basierend auf Benutzerinteraktion oder einer anderen Logik ...

' Anwendung der Funktion basierend auf der Benutzerwahl
Call ZeilenAusblendenExtended(10, 15, 30, benutzerAuswahl)