Manejo de la tecla Intro

Tengo una hoja de Excel, que esta dividida en varias columnas, y dentro de las mismas hay celdas. Dentro de cada columna, me muevo por sus celdas con las teclas de dirección, pero cuando le doy a Intro se va para abajo, lo que quiero es que vaya el cursor a una celda de una columna determinada.

1 respuesta

Respuesta
1
Al cursor podes hacer que al presionar la tecla Intro se mueva para cualquiera de las 4 direcciones, esto lo conseguís en el menú Herramientas > Opciones y allí en la solapa Modificar le indicas para donde querés que se mueva.
Si querés que se vaya a una celda en particular tenés que programarlo mediante eventos.
Decime como querés seguir el tema (si lo querés hacer con eventos indicame que conocimientos tenés de vba).
Buenas gfellay!
Gracias por tu respuesta. Lo que tengo que hacer es programar un evento. Tenía este:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$13" Then
Range("J13").Select
End If
End Sub
Pero este, funciona tanto con las teclas de dirección, como con el Intro. Lo que necesito es que dentro de una columna, formada por 4 filas, me pueda desplazar con las teclas de dirección, y al pulsar intro, me salte a otra celda específica de otra columna. Creo que con el ejemplo que puse te haces una idea de lo que necesito.
Revisa la ayuda del Método OnKey que creo puede realizar lo que estás buscando, se me ocurre que lo habilites al entrar a la hoja y deshabilites cuando sales de la misma, podría ser algo así...
Private Sub Worksheet_Activate()
Application.OnKey "{ENTER}", "Vaya"
End Sub
Private Sub Worksheet_Deactivate()
Application.OnKey "{ENTER}", ""
End Sub
Sub Vaya()
'Acá va el código cuando presiona "Enter"
End Sub
Buenas gfellay!
Gracias por contestar. El código que tu dices, ya lo tengo implementado. Pero tengo varios problemas.
Te dejo antes el código para que vayas entendiendo:
Sub Destino()
If ActiveCell.Address >= "$B$13" And ActiveCell.Address <= "$H$13" Then
Range("J13").Select
End If
If ActiveCell.Address >= "$K$13" And ActiveCell.Address <= "$L$13" Then
Range("N13").Select
End If
If ActiveCell.Address >= "$O$13" And ActiveCell.Address <= "$T$13" Then
Range("V13").Select
End If
If ActiveCell.Address >= "$AA$13" And ActiveCell.Address <= "$AC$13" Then
Range("AE13").Select
End If
If ActiveCell.Address = "$AN$13" Then
Range("AP13").Select
End If
If ActiveCell.Address = "$AQ$13" Then
Range("B14").Select
End If
If ActiveCell.Address >= "$C$14" And ActiveCell.Address <= "$H$14" Then
Range("J14").Select
End If
If ActiveCell.Address >= "$K$14" And ActiveCell.Address <= "$L$14" Then
Range("N14").Select
End If
If ActiveCell.Address >= "$O$14" And ActiveCell.Address <= "$T$14" Then
Range("V14").Select
End If
If ActiveCell.Address >= "$AA$14" And ActiveCell.Address <= "$AC$14" Then
Range("AE14").Select
End If
If ActiveCell.Address = "$AN$14" Then
Range("AP14").Select
End If
If ActiveCell.Address = "$AQ$14" Then
Range("B15").Select
End If
If ActiveCell.Address >= "$B$15" And ActiveCell.Address <= "$H$15" Then
Range("J15").Select
End If
If ActiveCell.Address >= "$K$15" And ActiveCell.Address <= "$L$15" Then
Range("N15").Select
End If
If ActiveCell.Address >= "$O$15" And ActiveCell.Address <= "$T$15" Then
Range("V15").Select
End If
If ActiveCell.Address >= "$AA$15" And ActiveCell.Address <= "$AC$15" Then
Range("AE15").Select
End If
If ActiveCell.Address = "$AN$15" Then
Range("AP15").Select
End If
If ActiveCell.Address = "$AQ$15" Then
Range("B16").Select
End If
End Sub
Y en el ThisWorkBook tengo esto:
Sub Workbook_Open()
Application.OnKey "~", "Destino"
End Sub
Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "~"
End Sub
Bien, ahora surgen varios problemas.
El primero, es que quiero funcionar con el intro del teclado numérico, pero solo me funciona con el intro del alfabético.
Segundo: Cuando paso a la segunda fila, y le doy a intro, me vuelve a la primera fila y segunda columna, cosa que debería ir a la segunda fila de la segunda columna.
La hoja de excel, la tengo dividida en varias columnas, y entre ellas, hay una celda de separación. En cada columna, se rellena una serie de celdas, que no siempre son las mismas, es decir, en una columna de 5 celdas, puedo rellenar la primera, darle a intro, y que me pase a la primera celda de la siguiente columna.
Lo que quiero conseguir, es que dentro de una misma fila de celdas, al darle a intro desde cualquiera, me lleve a una celda determinada.
Gracias por la ayuda
Para tu segunda pregunta, lo que podes hacer es que en lugar de posicionarte en forma absoluta (extraigo una parte de tu código para que entiendas)
Sub Destino()
If ActiveCell.Address >= "$B$13" And ActiveCell.Address <= "$H$13" Then
Range("J13").Select
End If
...
te posición con
If ActiveCell.Address >= "$B$13" And ActiveCell.Address <= "$H$13" Then
Cells(ActiveCell.Row, 10).Select
End If
(El 10 significa columna J)
Respecto a los 2 Intro, la verdad que no se; por las dudas revisá en la ayuda pues supongo que tiene que estar diferenciadas ambas teclas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas