Forum Discussion
Using conditional formatting or VBA to automatically open the next drop down menu after selecting ?
- Dec 05, 2019
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.
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_sktneerDec 05, 2019Silver 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.
- TrismosDec 05, 2019Copper Contributor
No sir. I still get an error message. Your first example had two sets of code. One seemed error free. (Actually there is a compiler error - Private Sub Worksheet_SelectionChange(ByVal Target As Range) Please elucidate?
- Subodh_Tiwari_sktneerDec 05, 2019Silver Contributor
I forgot to tweak something. Please check the attached and see if this works now.
Actually since I am using 32 bit version, it works on my end.