Grabando macros con referencias absolutas y relativas

Cuando utilizamos el grabador de macros, podemos crear una macro usando referencias absolutas o relativas. Si no especificamos nada, el grabador aplicará cada una de las instrucciones en celdas absolutas, idénticas a las modificadas en el momento de la grabación.

 
Para ver un ejemplo de cada modelo de grabación, abriremos Excel y reduciremos el tamaño de la ventana de Excel para que ocupe solo la mitad izquierda de la pantalla. Una vez hayamos redimensionado la ventana de Excel a más o menos la mitad de la pantalla, nos dirigiremos a la pestaña “Desarrollador” y pulsaremos el botón de “Visual Basic” del grupo “Código”.

 
Una vez se abra la aplicación VBA, ajustaremos el tamaño de la ventana de Visual Basic en la mitad de la derecha, para poder ver ambas aplicaciones simultáneamente.

 

macros

 

Al disponer de la ventana Excel a un lado y la de Visual Basic al otro, podemos ver los códigos generados con cada paso que demos e incluso hacer cualquier corrección al momento, que podemos trabajar en la ventana de Visual Basic durante la grabación, pues sólo se graba en la macro aquello que realicemos en Excel.

Activaremos alguna hoja vacía del documento de Excel y cambiaremos su nombre por “Absolutas”. En la barra de tareas de Excel, ubicada en la base de su interfaz, pulsaremos el conmutador “Grabar macro” que es el botón al lado de “Listo”. De este modo, se abrirá la ventana de “Grabar macro”. Llamaremos a la nueva macro “Meses_absolutos” y estableceremos que se guarde en el libro activo.

 

macros03

 

Pulsaremos el botón “Guardar” y en vez de comenzar a grabar la macro, haremos doble clic en el módulo 1 que se acaba de crear dentro del libro de Excel.

 

macros02                           macros04

 

Seleccionaremos la celda A1 y escribiremos la palabra “Enero”. Conforme vayamos avanzando, comprobaremos en la ventana de código cómo éste se va completando paso a paso a medida que realizamos cualquier acción. Una vez escrito “Enero” arrastraremos desde la esquina inferior derecha de la celda activa para seleccionar hasta la celda A12 y aplicar el autorrelleno.

 

macros05

 

De esta manera se completan los nombres de los doce meses del año y se amplía el código en la ventana de Visual Basic con las instrucciones precisas.

 

macros06

 

Una vez llegado a este punto, pulsaremos el mismo conmutado de grabación de macros de la barra de estado de Excel que ahora muestra el botón con el icono cuadrado para indicarnos que sirve para detener la grabación de la macro.

Si nos fijamos en el código Visual Basic, la primera instrucción indica que se selecciona la celda concreta A1. En la segunda nos indica que se introduce en la celda activa el texto “Enero” y en la tercera que se aplica el autorelleno predeterminado al rango de celdas A1 a A12 que son seleccionadas para terminar.

 

macros07

 

Ahora, en el documento que tenemos abierto de Excel, insertaremos una hoja de cálculo nueva que llamaremos “Relativas” y seleccionaremos una celda distinta a A1. En el grupo “Código” de la ficha de “Desarrollador” de Visual Basic activaremos el botón “Usar referencias relativas”.

 

macros08

 

Pulsaremos el botón “Grabar macro” y la nombraremos como “Meses_relativos”. Comprobaremos en la ventana de Código VBA que en este caso la nueva subrutina se crea directamente en el mismo módulo que teníamos abierto en pantalla.

 

macros09

 

Pulsaremos en la celda A1 e introduciremos el texto “Enero”. Comprobaremos en el código que la referencia a la celda A1 se indica en relación a la celda seleccionada incialmente, en nuestro caso “ActiveCell.Offset(-8, -2)” que indica que se trata de 8 filas arriba y dos columnas a la izquierda. A continuación se indica la celda efectivamente seleccionada “.Range(«A1»).Select.

 

macros10

 

De igual modo que en el ejemplo que hemos seguido con las referencias absolutas, arrastraremos la esquina inferior izquierda para volver a autocompletar los nombres de los doce meses del año, detendremos la grabación y comprobaremos el código creado.

 

macros11

 

Insertaremos una nueva hoja en blanco en el libro de Excel a la que llamaremos “Práctica” y seleccionaremos una celda distinta a la A1. Pulsaremos el botón “Ejecutar macro” de la barra de herramientas de VBA y en cuadro Macros seleccionaremos la macro “Meses_absolutos”,

 

macros12

 

que como comprobaremos insertará los meses del año en las mismas celdas que lo hicimos al grabar la macro (A1:A12), mientras que si ahora ejecutamos la macro “Meses_relativos”, Excel escribirá los meses 8 celdas más arriba y dos columnas a la izquierda de la celda activa.

 

macros13                           macros14

 

Espero que os haya resultado útil!


Descubre más desde Asiento descuadrado

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *