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

Zeilen über Dropdown Menü aus- und einblenden

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

Zeilen über Dropdown Menü aus- und einblenden
14.07.2024 00: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
14.07.2024 00: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
Anzeige