Forum Discussion
Using conditional formatting or VBA to automatically open the next drop down menu after selecting ?
I am trying to streamline a report format to make it more usable: it has a list of questions followed by a drop down menu - example attached. After selecting an item in the current drop down I would like the next drop down to open automatically. This would speed things up considerably and also possibly ensure the questions are actually dealt with instead of remaining populated with previous selections.
Is there a way to do this?
14 Replies
- Subodh_Tiwari_sktneerSilver Contributor
You may place the following code on Sheet Module to see if this is what you are trying to achieve.
e.g. if you select an answer from the dropdown list in AM4, the dropdown list in AM5 will expand automatically for you to choose an answer.
Code on Sheet Module:
Private Sub Worksheet_Change(ByVal Target As Range) Dim n As Variant On Error Resume Next n = Target.Validation.Type On Error GoTo 0 If n = 3 Then n = 0 On Error Resume Next n = Target.Offset(1, 0).Validation.Type On Error GoTo 0 If n = 3 Then Target.Offset(1, 0).Select SendKeys "%{Down}" End If NUM_On End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) NUM_On End Sub
Code on a Standard Module like Module1:
Private Declare Sub keybd_event Lib "user32" ( _ ByVal bVk As Byte, _ ByVal bScan As Byte, _ ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Private Const VK_NUMLOCK = &H90 Private Const KEYEVENTF_KEYUP = &H2 Declare Function GetKeyState Lib "user32.dll" ( _ ByVal nVirtKey As Long) As Integer Sub NUM_On() If Not (GetKeyState(vbKeyNumlock) = 1) Then keybd_event VK_NUMLOCK, 1, 0, 0 keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0 End If End Sub
SendKeys method may mess up with the Numlock. Though I have tried to handle that, it is inconsistent to work the same way. See if this is something you can work with.
- TrismosCopper Contributor
I am a rank amateur with Excel. I can find my way around the basics but VBA is still a bit of black magic. I received the attached error message and haven't gone further with it to avoid making errors. Advice?
- Subodh_Tiwari_sktneerSilver Contributor
That means you are using 64 bit of Excel. I am using 32 bit of Excel.
Please find the attached and let me know if that works without producing an error on your end.
- TrismosCopper Contributor