Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen über Dropdown Menü aus- und einblenden

Zeilen über Dropdown Menü aus- und einblenden
13.07.2024 22:49:41
merry-excels
Hallo zusammen!

Ich habe heute zum ersten Mal VBA ausprobiert (... hauptsächlich aus der Excel-Hilfe und anderen Forenbeiträgen zusammengeklaubt und Rest Trial+Error) und hätte eine Frage. Vorab - mein Code funktioniert, ist aber ziemlich langsam und ich wüsste gerne, ob es nicht irgendwie eleganter geht.

Zuerst habe ich mir in Excel ein Dropdown-Menü in Zelle E7 mit den Werten Ebene 1-4 erstellt. Erklärtes Ziel ist es, dass ich, wenn ich im Dropdown Ebene 1 auswähle, all die Zeilen ausblende, die in Spalte A keinen Wert eingetragen haben. Bei Auswahl von Ebene 2 sollen alle Zeilen ausgeblendet werden, die weder in Spalte A noch in Spalte B einen Wert haben, und in Ebene 3 das gleiche Spiel plus Spalte C. In Ebene 4 soll alles sichtbar sein, ebenso wie wenn nichts ausgewählt ist.

Folgendes hab ich in VBA unter Tabelle geschrieben:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("E7").Value = "Ebene 1" Then
Makro4
End If

If Range("E7").Value = "Ebene 2" Then
Makro5
End If

If Range("E7").Value = "Ebene 3" Then
Makro6
End If

If Range("E7").Value = "Ebene 4" Then
Rows().EntireRow.Hidden = False
End If

If Range("E7").Value = "Ebene wählen" Then
Rows().EntireRow.Hidden = False
End If

End Sub


Makro 4 beinhaltet dann folgenden Schnipsel:
Sub Makro4()

Dim a
For a = 10 To 522

For Each i In Cells(a, 1)
If IsEmpty(i) = True Then
Rows(a).EntireRow.Hidden = True
End If
Next
Next
End Sub


Makro 5:
Sub Makro5()

Dim a
For a = 10 To 522

For Each i In Cells(a, 1)
If IsEmpty(i) = True Then
For Each k In Cells(a, 2)
If IsEmpty(k) = True Then
Rows(a).EntireRow.Hidden = True
End If
Next

End If
Next

Next

End Sub



Makro 6:
Sub Makro6()

Dim a
For a = 10 To 522

For Each i In Cells(a, 1)
If IsEmpty(i) = True Then
For Each k In Cells(a, 2)
If IsEmpty(k) = True Then
For Each m In Cells(a, 3)
If IsEmpty(m) = True Then
Rows(a).EntireRow.Hidden = True
End If
Next
End If
Next
End If
Next

Next

End Sub




Hat jemand eine Idee, wie man das schneller hinbekommen könnte?

Schonmal vielen Dank und ein schönes Wochenende :-)

LG Merry
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen über Dropdown Menü aus- und einblenden
13.07.2024 22:57:09
Eifeljoi 5
Hallo

Warum VBA?
Meine Meinung ist ein vernünftiger Tabellenaufbau dann würde dein Problem mittels Filtern bzw. Datenschnitt gelöst.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige