Zellen mit einem bestimmten Ausblenden

Guten Morgen an alle!

Es gibt zwar ähnliche Probleme, jedoch habe ich noch nicht das gefunden was ich brauche.

Und zwar habe ich eine Liste als Vorlage für eine Baugruppenkonfiguration. In der Zelle „L2“ möchte ich entweder den Wert „A“ (steht für Analog) oder den Wert „D“ (steht für Digital) eintragen.
In den unteren Zeilen sind die jeweiligen Teile aufgeführt. In der Spalte „L“ sind die Eigenschaften „A“, „D“, und „A / D“ (Analog und Digital) und eingetragen.
Meine Frage ist, wie ist es möglich, dass:

Wenn ich im „L2“ „A“ eintrage, dann die Zeilen mit „D“ ausgeblendet werden, so dass man nur „A“ und „A / D“ sieht,
und umgekehrt wenn ich „D“ eintrage, dass die Zeilen mit „A“ ausgeblendet werden, so dass man nur „D“ und " „A / D“ sieht.

Ich hoffe, dass ich euch nicht verwirrt habe.

Grüße

me.serhad

Hallo me.serhad,

mir fällt da nur eine Programmierung über VBA ein. Allerdings halte ich das für übertrieben, helfe aber ggfs. gerne.

Eigentlich reicht für diesen Zweck der Filter von Excel. Falls nicht bekannt:

Bereich mit den zu filternden Inhalten markieren
Unter „Daten“ den Filter einschalten.
Über die nun angezeigten DropDowns die Werte aussuchen, die man möchte…

Falls das nicht reicht, melde dich noch einmal…

fg

Dirk_P

Hallo @Dirk_Pegasus,

danke für die Antwort.
Das mit dem Filter ist mir bekannt. Ich würde jedoch die VBA-Variante bevorzugen, da ich nicht will, dass beim manuellen Filtern was durcheinander kommt.
Hast du da was für mich?

Grüße

hallo,

hoffe du kannst was mit VBA umgehen…

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

If Target.Row = 2 And Target.Column = 12 Then
    With ActiveSheet
        .Rows.Hidden = False
        For i = 3 To .Cells.SpecialCells(xlLastCell).Row
            If (.Cells(i, 12).Value <> .Cells(2, 12).Value) Then
                .Rows(i).Hidden = True
            End If
        Next i
    End With
End If

End Sub

Das an in Event des Workheets „Change“ einbauen.

Viel Spaß damit!

fg

Dirk_P

Hallo Dirk,

vielen Dank für die rasche Antwort.

Funktioniert soweit.
Was mir noch fehlt ist, dass egal welcher Wert eingetragen wird, die „A / D“ und leere Zellen angezeigt werden.
Kann man da noch was machen?

VG

Hallo,

das ist ja schon mal schön…

Zur Erläuterung:
.Cells(i, 12).Value <> .Cells(2, 12).Value
Prüft, ob der Wert in Zeile i (.Cells(i, 12)) dem gesuchten Wert (.Cells(2, 12)) entspricht. Hier muss man dann eben auch andere Prüfungen einbauen.

Ersetze das mal mit:
(.Cells(i, 12).Value <> .Cells(2, 12).Value) and
not ((.Cells(i, 12).Value = „A / D“) or
(.Cells(i, 12).Value = „“))

(Alles in eine Zeile oder mit " _" als Zeilenende trennen…
(habs nicht geprüft…)

fg

Dirk_P

Hmm, jetzt funktioniert es nicht mehr. Ich habe folgendes eingetragen:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

If Target.Row = 2 And Target.Column = 12 Then
With ActiveSheet
.Rows.Hidden = False
For i = 3 To .Cells.SpecialCells(xlLastCell).Row
If (.Cells(i, 12).Value <> .Cells(2, 12).Value) and
not ((.Cells(i, 12).Value = „F / D“) or
(.Cells(i, 12).Value = „“)) Then
.Rows(i).Hidden = True
End If
Next i
End With
End If
End Sub

Hallo,

hast Du auch den untenstehenden Teil in einer einzigen Zeile im VBA-Editor stehen, so wie Dirk es geschrieben hat?

Gruß
shooty

Hallo @shooty,

danke für deine Antwort.

Sorry das hatte ich jetzt nicht beachtet. Jetzt funktioniert es fast. Jetzt habe ich das Problem, das mir nur „F / D“ und die Leerzeilen angezeigt werden, egal ob ich F oder D eintrage…

Gruß

Hallo,

mach mal in dem Code aus „F / D“ ein „A / D“. Ist ein Tippfehler… Oder habe ich noch etwas übersehen?

Ansonsten bitte mal zur not sprachlich beschreiben, was passieren soll:
Ich gebe in „A“ ein.
Es sollen alle Zeilen gezeigt werden, die:
„A“ oder „A / D“ … beinhalten oder „“ (leer) sind.

fg

Dirk_P

Ja zwischenzeitig wurde aus „A“ ==> „F“.
Genau es ist genauso wie Du es beschreibst.
Wenn ich „F“ eingebe, dann soll „F“, „F / D“ und leere Zellen angezeigt werden.
Wenn ich „A“ eingebe, dann soll „A“, „F / D“ und leere Zellen angezeigt werden.

Grüße

Hallo,

also bitte mal genau angeben:
Welche Eingaben sind zulässig? A, F, …
Bei A anzeigen wenn: A, F / D, und leer
Bei F anzeigen wenn: F, F / D, und leer
Bei …

Und ein „freundschaftlicher“ Rat: Werde dir mal einig, wie deine Daten aussehen sollen. Das Stückchen Code ist ziemlich unflexibel! Du wenn du in Formeln etc. ähnliche Abfragen brauchst, wird das schnell nicht mehr handlbar.

fg

Dirk_P

Sorry, habe mich vertippt. Aus „A“ wurde „F“.
Somit sind nur F und D zulässig, also nur diese Werte können eingegeben werden.
Also:
Bei F anzeigen wenn: F, F / D, und leer
Bei D anzeigen wenn: D, F / D, und leer

Sorry nochmal

Grüße

me.serhad

Noch einmal ein Dankeschön an alle Beteiligten!
Habe nach langer Recherche folgende Lösung gefunden:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Not Intersect(Target, Range(„L2“)) Is Nothing Then
If AutoFilterMode = True Then
AutoFilterMode = False
End If
Range(„A3:Q3“).AutoFilter Field:=12, Criteria1:="" & Target.Text & ""
End If
End Sub

Gruß
me.serhad