Como puedo cambiar el movimiento del cursor en esta lista desplagable

Tengo este código, pero al utilizarlo me doy cuenta que al llegar a la celda con la lista desplegable las teclas de dirección ya no hacen que se mueva el cursor se queda atrapado en la lista desplegable y solo funcionan hacia abajo y arriba, me podrían ayudar a saber si se puede corregir esto y como podria hacerlo con varias Listas desplegables.

Muchas Gracias.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2017/8/15
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Set xWs = Application.ActiveSheet
    On Error Resume Next
    Set xCombox = xWs.OLEObjects("TipoCta")
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
    End With
    If Target.Validation.Type = 3 Then
        Target.Validation.InCellDropdown = False
        Cancel = True
        xStr = Target.Validation.Formula1
        xStr = Right(xStr, Len(xStr) - 1)
        If xStr = "" Then Exit Sub
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 1
            .Height = Target.Height + 1
            .ListFillRange = xStr
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.TipoCta.DropDown
    End If
End Sub
Private Sub TipoCta_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
    End Select
End Sub

1 Respuesta

Respuesta
2

Si lo que quieres es presionar la flecha de la izquierda y que el cursor se salga de la lista desplegable y se active la celda de la izquierda; y lo mismo con la flecha de la derecha, entonces actualiza esta parte:

Private Sub TipoCta_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
        Case 37 'flecha izquierda
            Application.ActiveCell.Offset(0, -1).Activate
        Case 39 'flecha derecha
            Application.ActiveCell.Offset(0, 1).Activate
    End Select
End Sub

Prueba y me comentas.

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Muchas Gracias Dante, me ha servido mucho y abusando de tu conocimiento, se podría también que al dar "enter" pasara a la celda de la derecha

Cambia esta

Case 13
            Application.ActiveCell.Offset(1, 0).Activate

Por esta

Case 13
            Application. ActiveCell.Offset(0, 1). Activate

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas