Excel Avanzado

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

Excel Avanzado

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
(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 problema
(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
(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
(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

  1. Por ejemplo si se tiene en una hoja varias tablas con datos y queremos aplicarle un formato determinado (de colores, tamaño, etc) a todas las tablas (encabezado y contenido) utilizando solo la macro, sería de esta manera:

    Para el encabezado:

    1. Grabar macro
    2. Se hace clic a cualquier celda que está contenida de esa primera tabla.
    3. Luego, Control + flecha hacia arriba
    4. Control + flecha hacia la izquierda
    5. Control + Shift + fleja hacia la derecha
    6. A continuación se le aplica los formatos que queremos a la tabla (color, tipo de letra, tamaño de fila o columna, etc)

    Para el resto de la tabla (contenido)

    7. Hacer click en el boton "Usar referencias relativas" que se encuentra en la ficha Programador
    8. Presionamos Flecha hacia abajo (que es el inicio del contenido de la tabla)
    9. De nuevo hacemos click en el boton "Usar referencias relativas" para desactivarlo
    10. Seleccionar toda la tabla de contenido con Control + Shift + Flecha hacia la derecha y luego con Flecha hacia abajo
    11. De igual manera aplicamos los formatos que queremos
    12. Ahora Detener grabación
    13. Finalmente ejecutaremos la macro en las otras tablas y notaremos que automáticamente todas las tablas tienen el mismo formato que la primera tabla donde se grabó la macro.

  2. Tengo esta tarea me podrían ayudar? Inserta un botón para la ejecución de una macro que permita que en la columna a se ordene alfabéticamente manera descendente el contenido de las columnas b c y d rango b5:d26 debes crearla de tal manera que la macro realice la orden independiente de la celda en que se encuentre el apuntador o de referencia absoluta
    B) inserta un botón de macro en la columna a debajo del anterior que ordene los datos de la columna en la que se coloque el cursor esa macro debe ser de referencia relativa. De tal manera que al colocarse en la columna nombre (b4:b26) sortee la columna de a a la z o de menor a mayor y al cambiar a otra columna lo realicé automáticamente

  3. Tengo problema con una macro que no me deja que mi hija de captura grabe en la hoja de datos las celdas que quiero vaya llenando

  4. Buenos días.
    ayuda con una macro que me genere hipervínculos automáticamente desde una lista a cada hoja con el mismo nombre que esta en cada celda de la lista.

Deja una respuesta

Los campos requeridos estan marcados con *.