¿Cómo puedo hacer para mover un bloque de celdas en Microsoft Excel?
Hola amigo Fernando tengo una pregunta que hacerte ¿cómo puedo hacer para mover a la derecha y a la izquierda, arriba y abajo un bloque de celdas, por ejemplo las celdas "C3, D3, E3" se llaman "Bloque", quiero mover este bloque a través de las flechas direccionales.
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Curioso pedido, por cierto. Supongo que NO quieres hacerlo con el mouse, así que aquí va un procedimiento de Visual Basic que hace lo que solicitas... Una sola condición: El bloque debe ser continuo, rectangular o de una única celda. En otras palabras, esta rutina no funciona para rangos discontiguos. ¿OK? Para que funciones necesitas copiar los siguientes procedimientos en un módulo de VBA: Sub MueveDown() Fila = 1 colum = 0 Selection.Cut ActiveCell.Offset(Fila, colum) Selection.Offset(Fila, colum).Select End Sub Sub MueveUp() Fila = -1 colum = 0 Selection.Cut ActiveCell.Offset(Fila, colum) Selection.Offset(Fila, colum).Select End Sub Sub MueveLeft() Fila = 0 colum = -1 Selection.Cut ActiveCell.Offset(Fila, colum) Selection.Offset(Fila, colum).Select End Sub Sub MueveRight() Fila = 0 colum = 1 Selection.Cut ActiveCell.Offset(Fila, colum) Selection.Offset(Fila, colum).Select End Sub Sub Devuelve() Application.OnKey "{DOWN}" Application.OnKey "{UP}" Application.OnKey "{LEFT}" Application.OnKey "{RIGHT}" End Sub --- Además debes asociar este otro código al evento cambio de selección en la hoja donde quieres que esto ocurra. Doble click sobre ella y pega estas líneas de código en el panel de declaraciones: Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) NombRango = "Bloque" If Target.Address = Range(NombRango).Address Then Application.OnKey "{DOWN}", "MueveDown" Application.OnKey "{UP}", "MueveUp" Application.OnKey "{LEFT}", "MueveLeft" Application.OnKey "{RIGHT}", "MueveRight" Application.OnKey "{ESC}", "Devuelve" End If End Sub Cierra el editor de VBA y graba el archivo. Básicamente, este engendro hace que cuando selecciones el rango que indicas en la variable, en la hoja donde pegaste el último código, las flechas de dirección cambien su función y disparen sendas macros (las que pegaste en el módulo). Faltaba indicar cuándo dejaba de comportarse de esta manera, es decir, cómo hacer para que las teclas vuelvan a tener su funcionalidad habitual. Entonces asocié a la tecla Esc, otra macro (Devuelve) que restituye su funcionamiento. (En casos de conflictos con el sistema, puedes ejecutarla independientemente para que destrabe las teclas de movimiento). Por lo tanto, Geycer, en cuanto selecciones el bloque y presiones estas teclas de movimiento, ese bloque se desplazará conecuentemente. Ten cuidado por dónde lo mueves, porque lo que haya en las celdas por donde pase el bloque será borrado (en realidad, las macros están haciendo un Cortar y Pegar cada vez que te mueves). Cuando no quieras desplazarte más de esta manera, simplemente presiona la tecla Esc(ape), y muévete normalmente. Espero que esto te sirva. Saludos a Sandra Un abrazo! Fernando
Mil gracias Fernando, disculpa la demora, 2 razones tuve por no finalizar antes esta pregunta, el primero es que esperaba que en mi correo de Hotmail llegara el mensaje "tienes una nueva respuesta en todoexpertos" y nunca llegó, la segunda es por esto del matrimonio que es un tremendo ajetreo, ya me casé por lo civil y el 12 de este mes es el religioso, gracias por todo mil gracias. Bendiciones para todo tu hogar.