条件付き Excel ドロップダウン

条件付き Excel ドロップダウン

しばらく検索しましたが、問題の解決策が見つかりません。間接関数を介してドロップダウン リストで使用される値のリストを含む tbl_lov というテーブルがあります。INDIRECT("tbl_lov[ProjNR]")

プロジェクトが次々と発生するため、tbl_lov に Active という列があり、この列には True または False の値が格納されます。False の場合、この値がドロップダウンに表示されないようにする必要があります。残念ながら、これを直接行う方法をまだ見つけていません。

答え1

関数だけを使用するのは簡単なことではないようなので、結局マクロを使用することにしました (これは避けたかったことです)。

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

これは既存のテーブルを反復処理し、アクティブなプロジェクトのみを新しい範囲にコピーします。データ検証は新しいテーブルを指します。

関連情報