
Ich habe eine Weile gesucht, konnte aber keine Lösung für mein Problem finden. Ich habe eine Tabelle namens tbl_lov, die die Liste der Werte enthält, die in einer Dropdown-Liste über eine indirekte Funktion verwendet werden. INDIREKT("tbl_lov[ProjNR]")
Da Projekte kommen und gehen, habe ich in tbl_lov eine Spalte mit dem Namen „active“, die den Wert „True“ oder „False“ enthält. Wenn der Wert „False“ ist, möchte ich nicht, dass dieser Wert in der Dropdown-Liste angezeigt wird. Leider habe ich noch nicht herausgefunden, wie ich dies direkt tun kann.
Antwort1
Da es scheint, dass die Verwendung nur der Funktionen kein triviales Unterfangen ist, habe ich letztendlich ein Makro verwendet (was ich vermeiden wollte).
Dim all_lov As Variant
Dim row_nr As Integer
Sub Button1_Click()
Worksheets("LoV").Range("I:N").Delete
row_nr = 3
all_lov = Worksheets("LoV").ListObjects("tbl_lov").DataBodyRange.Value
Worksheets("LoV").Range("B3:G3").Copy Worksheets("LoV").Range("I3")
For i = 1 To UBound(all_lov)
If all_lov(i, 6) = True Then
row_nr = row_nr + 1
Worksheets("LoV").Range("B" & (3 + i) & ":G" & (3 + i)).Copy Worksheets("LoV").Range("I" & row_nr)
End If
Next i
Worksheets("Lov").ListObjects.Add(SourceType:=xlSrcRange, Source:=Worksheets("LoV").Range("I3:N" & row_nr), xlListObjectHasHeaders:=xlYes, tablestyleName:="TableStyleDark3").Name = "tbl_lovActive"
End Sub
Dadurch wird meine vorhandene Tabelle durchlaufen und nur die aktiven Projekte in einen neuen Bereich kopiert. Die Datenüberprüfung verweist auf die neue Tabelle.