Dropdown

Bild

Betrifft: Dropdown
von: Claudia
Geschrieben am: 29.10.2015 08:12:01

Hallo zusammen!
Ich bin neu hier und hoffe, Ihr könnt mir helfen.
Mein Dokument ist ein Protokoll und ich möchte eine Dropdown-Spalte mit den Möglichkeiten "pendent/erledigt". Wenn man erledigt anklickt sollte die entsprechende Zeile automatisch ausgeblendet werden, sodass ich nur noch die als "pendent" markierten Zeilen im Dokument sehe.
Ist das machbar?
Vielen Dank im voraus für Eure Antworten.
LG Claudia

Bild

Betrifft: AW: Dropdown
von: Beverly
Geschrieben am: 29.10.2015 08:19:49
Hi Claudia,
das kann man per VBA lösen. Mit DopDowns meinst du Gültigkeitszellen? In welcher Spalte befinden sich diese denn?




Bild

Betrifft: AW: Dropdown
von: EtoPHG
Geschrieben am: 29.10.2015 08:20:44
Hallo Claudia,
Bei Excel gut dürfte das Einfügen der Datenprüfung-Liste-pendent;erledigt wohl kein Problem sein. Dann noch diesen Code in das Tabellenblatt kopieren

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Rows(Target.Row).EntireRow.Hidden = (Target.Text = "erledigt")
End Sub

und fertig is... ;-)
Gruess Hansueli

Bild

Betrifft: AW: Dropdown
von: matthias
Geschrieben am: 29.10.2015 08:46:23
Hallo Hansueli,
dein Einzeiler was das Ausblenden der Target-Zeile angeht gefällt mir. Jedoch ist die Lösung mit Target.Count sehr lieblos. Was passiert wenn sie mehrere Zeilen fertig macht und die Auswahl "erledigt" nach unten zieht? Nichts.
lg Matthias

Bild

Betrifft: AW: Dropdown
von: matthias
Geschrieben am: 29.10.2015 08:35:54
Hallo Claudia,
das ist ganz einfach, dazu musst du zwei Sachen erldigen:
1.
Spalte markieren und im Reiter "Daten" die Datenüberprüfung auswählen. Dort 'Zulassen' = "Liste" einstellen und 'Quelle' = "pendent;erledigt" (ohne Anführungszeichen) eingeben. Damit kann in dieser Spalte nur einer dieser Begriffe stehen und sie werden dir als Dropdown in jeder Zelle angeboten.
2.
Dieses Event in den Code-Bereich der Tabelle einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rZelle As Range
If Not Intersect(Target, Columns("G")) Is Nothing Then
    For Each rZelle In Intersect(Target, Columns("G"))
        If rZelle = "erledigt" Then
            Rows(rZelle.Row).Hidden = True
        Else
            Rows(rZelle.Row).Hidden = False
    Next rZelle
End If
End Sub
Zum Code-Bereich der Tabelle gelangst du, indem du auf den Reiter unten Rechtsklick - "Code anzeigen" wählst und das einfach dort reinkopieren. Die Spalte (Column) ist von dir noch anzupassen (2 Stellen im Code), hier ist es Spalte "G".
Der Code gilt dann nur für dieses Tabellenblatt, muss also in jedes weitere Blatt welches du so nutzen willst ebenfalls eingefügt werden.
Die Tabelle zum Schluss als Excel-Arbeitsmappe mit Makros (*.xlsm) speichern.
lg Matthias

Bild

Betrifft: AW: Dropdown
von: matthias
Geschrieben am: 29.10.2015 08:43:12
Ich sehe grad, da fehlt ein "End If" am Schluss:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rZelle As Range
If Not Intersect(Target, Columns("G")) Is Nothing Then
    For Each rZelle In Intersect(Target, Columns("G"))
        If rZelle = "erledigt" Then
            Rows(rZelle.Row).Hidden = True
        Else
            Rows(rZelle.Row).Hidden = False
        End If
    Next rZelle
End If
End Sub


Bild

Betrifft: AW: Dropdown
von: Claudia
Geschrieben am: 29.10.2015 09:27:07
Hi Matthias
Wow. Genial. Hat alles einwandfrei geklappt, bin voll happy!
Vielen Dank für Deine rasche Hilfe!
Schönen Tag und LG
Claudia

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dropdown"