En este ejemplo vas a asumir que quieres hacer envio de correspondencia de excel a word. Sin embargo, cuando la persona te envia la data, estaba en la secuencia equivocada. En lugar de tener la data distribuida en columnas, la data tenia la informacion en la columna A.
Aunque tu podrias arreglar este tipo de error manualmente, te tomaria mucho tiempo cortar y pegar. Esto se puede automatizar con una macro.
Grabar una macro
La meta es grabar una macro simple que resolvera un registro. Para esto tienes que poner activa la celda con la que vas a comenzar. La macro deberia mover los 2 campos que estan debajo, eliminar las 3 celdas vacias, y terminar con el siguiente nombre. De este modo, tu puedes ejecutar la macro una y otra vez.
Para comenzar vamos a poner la celda activa en A1.
Ahora vamos a Vista-Macros-Grabar Macro.
Le damos un nombre a la macro (sin espacios). Escribimos un atajo de teclado. Dado que para este ejemplo solo usaras una macro, algo como Ctrl+a podria ser facil de recordar.
Una vez que tu haz empezado a grabar una macro, puedes ver el boton de Detener Macro. Abajo esta el boton de Usar Referencias Relativas.
Si tu presionas empiezas a grabar la macro ahora, Excel usaria las direcciones. Esto quiere decir, que asumiria que tu quisiste mover A2 a V1 y A3 a C1. Esto funciona para un registro, pero tu necesitas que la macro funcione para todos los registros. Activa las Referencias Relativas dando click en el boton.
Pasos para completar la tarea
Todo lo que tu hagas sera grabado. De ser posible, usa pulsaciones en vez del mouse.
A este punto, esta casi finalizada la macro. El problema es que, como mostramos abajo, tu haz seleccionado 3 celdas y tu solo quieres el nombre seleccionado.
Probar la macro
Es tiempo de ejecutar la macro. Antes que lo intentes, graba todo antes que algo inesperado ocurra.
Pulsa Ctrl+a o ejecuta la macro una vez. Si todo va bien la macro arreglara el siguiente nombre.
Ejecutar la macro muchas veces
Si funciono bien una vez, cada vez que pulses Ctrl+a otro registro sera corregido.
Asi es como se vera el codigo en el editor de Visual Basic.
Aunque tu podrias arreglar este tipo de error manualmente, te tomaria mucho tiempo cortar y pegar. Esto se puede automatizar con una macro.
Grabar una macro
La meta es grabar una macro simple que resolvera un registro. Para esto tienes que poner activa la celda con la que vas a comenzar. La macro deberia mover los 2 campos que estan debajo, eliminar las 3 celdas vacias, y terminar con el siguiente nombre. De este modo, tu puedes ejecutar la macro una y otra vez.
Para comenzar vamos a poner la celda activa en A1.
Ahora vamos a Vista-Macros-Grabar Macro.
Le damos un nombre a la macro (sin espacios). Escribimos un atajo de teclado. Dado que para este ejemplo solo usaras una macro, algo como Ctrl+a podria ser facil de recordar.
Una vez que tu haz empezado a grabar una macro, puedes ver el boton de Detener Macro. Abajo esta el boton de Usar Referencias Relativas.
Si tu presionas empiezas a grabar la macro ahora, Excel usaria las direcciones. Esto quiere decir, que asumiria que tu quisiste mover A2 a V1 y A3 a C1. Esto funciona para un registro, pero tu necesitas que la macro funcione para todos los registros. Activa las Referencias Relativas dando click en el boton.
Pasos para completar la tarea
Todo lo que tu hagas sera grabado. De ser posible, usa pulsaciones en vez del mouse.
Acciones | Teclas que vas a presionar | Que es lo que graba |
Bajar una fila Seleccionar 2 filas | Abajo Mientras mantienes presionada la tecla Shift, presiona abajo. | ActiveCell.Offset(1, 0).Range("A1:A2").Select |
Cortar | Ctrl+X | Selection.Cut |
Mover una fila arriba y a la derecha una columna | Arriba, Derecha | ActiveCell.Offset(-1, 1).Range("A1").Select |
Pegar | Ctrl+V | ActiveSheet.Paste |
Moverte a la fila 2, Columna B | Abajo | ActiveCell.Offset(1, 0).Range("A1").Select |
Cortar | Ctrl+X | Selection.Cut |
Mover una fila arriba y 2 columnas a la izquierda Selecciona 3 celdas(filas) | Abajo, Izquierda, Izquierda Mientras se mantiene presionada la tecla shift, presiona abajo, abajo, abajo | ActiveCell.Offset(1, -2).Range("A1:A3").Select |
Desde el menu seleccione inicio, eliminar | Poner el mouse en el menu inicio, luego poner el mouse en el boton eliminar | Selection.Delete Shift:=xlUp |
Acciones | Teclas que vas a presionar | Que es lo que graba |
Selecciona el nombre de la persona en el siguiente registro | Arriba, Abajo | ActiveCell.Select |
Detener la grabacion | Click en el boton Detener Grabacion |
Probar la macro
Es tiempo de ejecutar la macro. Antes que lo intentes, graba todo antes que algo inesperado ocurra.
Pulsa Ctrl+a o ejecuta la macro una vez. Si todo va bien la macro arreglara el siguiente nombre.
Ejecutar la macro muchas veces
Si funciono bien una vez, cada vez que pulses Ctrl+a otro registro sera corregido.
Asi es como se vera el codigo en el editor de Visual Basic.
Sub RearrangeAddressBook() ' ' RearrangeAddressBook. Macro Recorded by XSaint, 27/02/12 ' ' Keyboard Shortcut: Ctrl+a ' ActiveCell.Offset(1, 0).Range("A1:A2").Select Selection.Cut ActiveCell.Offset(-1, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(1, 0).Range("A1").Select Selection.Cut ActiveCell.Offset(-1, 1).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(1, -2).Range("A1:A3").Select Selection.Delete Shift:=xlUp ActiveCell.Select End SubEsta sencilla macro resuelve un problema de la vida real. La clave para lograrlo fue usar el modo de grabacion relativa.