I am having some trouble creating a dependent drop down box, where based on the value of the first dropdown, either a list is returned or a value is returned:
My first drop down ("Drop Down 6") is comprised of two options (a named range)
LU Classification:
CFR
DCR
The code for my second drop down ("Drop Down 11") is below:
'Declare variables
Dim wb As Workbook
Dim ws As Worksheet
Dim c_list As Worksheet
'Assign variables
Set wb = ThisWorkbook
Set ws = ActiveSheet
Set c_list = wb.Worksheets("C_List")
'DropDown level 1
Dim dd As DropDown
Set dd = ws.Shapes("Drop Down 6").OLEFormat.Object
'DropDown level 2
Dim dd2 As DropDown
Set dd2 = ws.Shapes("Drop Down 11").OLEFormat.Object
'DropDown level 2 values
With dd2
If dd.Value = 1 Then
dd2.ListFillRange = "LU_BBP"
Else
dd2.ListFillRange = "Packer"
End If
End With
End Sub
My if statement doesn't seem to be working, where a list should be returned, when I select CFR on the first drop down.
Any thoughts?
EDIT: If I run through line by line in the VBA editor, the drop down does update, however, when simply using the drop down the change doesn't carry over.
You need to do this slightly differently.
Paste this code in the module
Option Explicit
Sub DropDown6_Change()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim dd As DropDown
Set dd = ws.Shapes("Drop Down 6").OLEFormat.Object
Dim dd2 As DropDown
Set dd2 = ws.Shapes("Drop Down 11").OLEFormat.Object
If dd.Value = 1 Then
dd2.ListFillRange = "LU_BBP"
Else
dd2.ListFillRange = "Packer"
End If
End Sub
Now right click on Drop Down 6
and click on assign macro. Assign DropDown6_Change
to this drop down and you are done :)
In Action (A demo)