Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Referencias relativas macros, Grabar macros con referencias relativas

Grabar macros con referencias relativas

| 4 comentarios

Cuando se trabaja con la grabadora de macros, se tiene la opción de activar el botón "referencias relativas" . Este botón nos es de gran utilidad ya que nos ayuda automatizar tareas repetitivas en una hoja en donde hay datos que deben estar distribuidos de manera determinada y estándar, es decir, que no varíen.

De esta manera se puede utilizar una macro para simplificar tareas que pueden resultar rutinarias.

Por ejemplo:

Tarea3 foto1 300x278, Grabar macros con referencias relativas
(Para mayor visualización de la imagen, hacer click en la misma)

Aquí tenemos una relación de los meses del año, se introdujeron los datos grabando la macro "meses del año". Luego, cuando se intenta correr la macro en otra celda, digamos D1:

tarea3 problema1 300x116, Grabar macros con referencias relativas
(Para mayor visualización de la imagen, hacer click en la misma)

Como se puede apreciar, luego de ejecutar la macro, la relación de meses empieza en D1, pero los otros meses desde "Febrero" siguen de la celda A2. Observando la sintaxis que tuvimos en la grabadora de macros vemos que esto sucede ya que en la programación para los meses desde "Febrero" hasta "Diciembre" están programados para aparecer en las celdas que se ubican abajo de A1, que fue la "ActiveCell" en donde se escribió el primer dato, "Enero".

tarea3 visualbasic 300x186, Grabar macros con referencias relativas
(Para mayor visualización de la imagen, hacer click en la misma)

Ahora, realizamos la grabación del macro activando el botón "referencias relativas" . La sintaxis con el botón activado fue la siguiente:

Sub Meses()
'
' Meses Macro
'

'
ActiveCell.Offset.Range("A1").Select
ActiveCell.FormulaR1C1 = "Enero "
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Febrero"
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "Marzo"

Endsub

El código "ActiveCell.Offset" indica que no importa dónde se coloque el cursor para activar la celda, todos los datos se ingresarán de manera completa. Como se puede apreciar aquí:

tarea3fotofinal 300x217, Grabar macros con referencias relativas
(Para mayor visualización de la imagen, hacer click en la misma)

 

Esta es la utilidad del botón "referencias relativas" con un sencillo ejemplo, pero también puede ser de utilidad para bases de datos más grandes, así nos ayudará mucho a automatizar procesos.

Adjunto el archivo  Grabar-Macros-Referencia-Relativa

 

 

4 comentarios

Deja una respuesta

Los campos requeridos estan marcados con *.