Macro para ir a una celda determinada con tecla excel

Tengo un problema que no sé resolver.

He intentado hacer una macro pero no va bien.

Os cuento la dificultad, para ver si podéis echarme una mano.

1.- Cuando me sitúo en la celda (A2), cuando pulso ENTER necesito que vaya a la celda (C2).

2.- Después el mismo proceso desde la "c2" hasta la "f2".

3.- Cuando llegue a "f2", que cambie de registro/línea y haga lo mismo con la A3, F3 y C3, y así sucesivamente con los registros de un rango concreto (a2:f90).

4.- La macro debería funcionar introduzca datos o no en la celda a la que salta.

1 Respuesta

Respuesta
2

Espero estés bien.

Te cuento que tal vez podrías solucionar de manera sencilla tu problema. Tenes dos formas.

1) Mediante las opciones de Excel. Entras en Avanzadas y luego, al principio, tenes Opciones de Edición. En dirección deberías elegir "Derecha". Esto va a hacer que siempre que siempre que presiones enter, el cursor se desplace hacia la celda que tiene a la derecha.

El problema de usar esta opción es que te lo haría siempre, en cualquier libro de excel a menos que lo automatices para este libro en particular con códigos que se ejecuten al momento de abrir y al momento de cerrar. Podría ser algo asi:

Private Sub Workbook_Open()
Application.MoveAfterReturnDirection = xlToRight
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturnDirection = xlDown
End Sub

2)La otra opción es mediante una macro. El problema seria que no lo podes hacer con enter ya que esa tecla se usa para otras cosas dentro de excel. Puedes poner un cogido como el que te pego a continuación y luego desde las opciones de la macro puedes generarle un método abreviado de teclado.

Sub Macro1()
ActiveCell.Offset(0, 1).Select
End Sub

Por favor comentame si alguna de estas opciones se acerca a lo que necesitas y vemos por cual de los caminos seguir.

Hola Lucas.

Muchas gracias en primer lugar.

Te cuento. Estuve investigando un poco más sobre la duda que planteé y he visto este post en todoexpertos.com (http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/73mro7nornyqs/codigo-para-pasar-de-una-celda-a-otra-con-un-enter-o-retroceder-a-la-celda-anterior-con-tab).

En él se detalla un proceso pero me pierdo cuando dice cómo y dónde escribir el evento y la macro. Tampoco sé cómo funciona exactamente pero parece ser que funciona el movimiento con el tabulador y/o la tecla ENTER.

La primera de tus opciones es fenomenal, pero la hoja que con la que trabajo la van a usar cinco o seis compañeros. No todos poseen conocimientos para cambiar de dirección el desplazamiento de tecla ENTER.

¿Podrías echarme una mano? Muchas gracias de nuevo.Haz tu pregunta

Tomo tus palabras de que la primera de las opciones podría funcionar. Paso a detallarte como deberías hacer para que funcione. No vas a tener problema con la cantidad de usuarios ya que los eventos son "invisibles".

Ve a la pestaña Programador, luego a Visual Basic (o presiona Alt + F11). Dale doble click a ThisWorkbook. Copia el siguiente código en la parte derecha de la pantalla. En donde te deja escribir.

Private Sub Workbook_Open()
Application.MoveAfterReturnDirection = xlToRight
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.MoveAfterReturnDirection = xlDown
End Sub

Luego guarda el libro como Libro de Excel habilitado para macros. Cierra el libro y vuelve a abrirlo.

Lo que van a hacer estas lineas de código es: cuando abres el archivo, selecciona la opción de desplazarse a la derecha al hacer click en enter. Luego, al cerrar el libro saca esa opción para que en caso de que abras otro archivo excel, no hago lo mismo.

Te paso un link en donde realice un ejemplo. https://www.dropbox.com/s/36y2vl5zie7by8o/Desplazamiento.xlsm

Muchas gracias Lucas!

Tu ejemplo funciona 100%. Perfecto.

La dificultad que tengo es que no soy capaz de adaptarlo totalmente a lo que necesito. Te cuento.

Adjunto un ejemplo para que veas (si quieres) de qué hablo, ya que ss muy probable que no pueda explicarme con claridad, por aquello de los conocimientos técnicos necesarios....

1- El desplazamiento hacia la derecha, perfecto.

2- En la hoja que estoy haciendo, hay celdas protegidas y la secuencia es celda desprotegida-celda protegida-celda desprotegida-celda protegida... y así hasta finalizar los campos del registro correspondiente. ¿Se puede hacer este desplazamiento solamente entre celdas desprotegidas? ¿Se puede indicar que la siguiente pulsación de ENTER o tabulador pase al registro siguiente una vez haya "saltado-seleccionado" la última celda desprotegida del registro anterior?

3- Antes de cumplimentar los valores de la celda, el usuario tiene que poder hacer dos selecciones en una lista desplegable... "curso" y "área".

Te aseguro que estoy dándole vueltas pero esa secuencia no consigo hacerla. De todas formas muchas gracias por tu ayuda e indicaciones. Estoy aprendiendo un montón. Cualquier ayuda me asoma a un método nuevo...

ENLACE A EJEMPLO: https://dl.dropboxusercontent.com/u/27692707/Ejemplo%20para%20desplazamiento.rar

Hola de nuevo Lucas!.

Ya he aplicado tu ejemplo. Gracias.

Sigo investigando cómo configurar la macro para que la selección salte a una celda concreta.

Un saludo.

Hola de nuevo.

Estoy intentando adaptar esta macro que funciona bien, pero no consigo hacer que pueda seleccionar una celda distinta al rango que le marco.

¿Alguna sugerencia?

Gracias.

Sinceramente no logro comprender que es lo que estas necesitando.

Si te parece finaliza esta pregunta y continuamos via mail.

Por favor escribime a [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas