Cómo OPTIMIZAR una MACRO generada con la Grabadora de macros en Excel

En este video tutorial te muestro cómo es grabar y optimizar una macro en la vida real, formateando un reporte verdadero.

He escuchado a algunas personas que no recomiendan el uso de la Grabadora de macros, sin embargo, creo que sólo es desconocimiento del potencial de esta herramienta.

Con la Grabadora podemos automatizar procesos que se pueden ejecutar con tan sólo un botonazo, además de generar código VBA para reutilizarlo y aprender propiedades de objetos.

Cómo OPTIMIZAR una MACRO generada con la Grabadora de macros en Excel

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Usar la grabadora de macros para formatear un reporte

Reporte sin formatear en Excel

Figura 1. Reporte sin formatear en Excel.

Para grabar la macro, sigue los siguientes pasos:

  • Ve a la pestaña Vista > Macros > Grabar macro.
  • Elige un nombre, método abreviado y luego Aceptar.
  • Elimina las filas de la 1 a la 6.
  • Elimina las columnas D, E, H, I, J y N.
  • Selecciona la celda A2.
  • Da doble clic en el nodo inferior derecho para rellenar valores.
  • Elimina la fila 2.
  • Selecciona todas las celdas y ajusta el ancho de las columnas.
  • Ve a la pestaña Vista > Macros > Detener grabación.

Código VBA generador por la grabadora de macros en Excel

Sub Macro1()
'
' Macro1 Macro
'

'
    Rows("1:6").Select
    Selection.Delete Shift:=xlUp
    Range("D:E,H:J,N:N").Select
    Range("N1").Activate
    Selection.Delete Shift:=xlToLeft
    Selection.AutoFill Destination:=Range("A2:A267")
    Range("A2:A267").Select
    Rows("2:2").Select
    Selection.Delete Shift:=xlUp
    Cells.Select
    Cells.EntireColumn.AutoFit
End Sub

Optimizar y mejorar el código generado

El código anterior que se generó con la grabadora tiene un problema, no detecta cuando seleccionamos la celda A2 y rellenamos y tampoco se adecúa a un reporte similar, pero con diferente cantidad de filas.

A continuación te pongo te pongo la macro optimizada, que además te da la opción de que decidas si quieres continuar o no.

Sub Macro1()
' Formatear reporte
' Macro generada por la grabadora, por optimizada
' exceleinfo.com

Dim UltimaFila As Long
Dim Pregunta As Byte

Pregunta = MsgBox("Deseas continuar?", vbQuestion + vbYesNo)

If Pregunta = vbNo Then Exit Sub

    Rows("1:6").EntireRow.Delete
    Range("D:E,H:J,N:N").EntireColumn.Delete
    
    UltimaFila = Range("A1").CurrentRegion.Rows.Count
    
    Range("A2").AutoFill Destination:=Range("A2:A" & UltimaFila)
    Rows("2:2").EntireRow.Delete
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    MsgBox "Listo!", vbInformation
End Sub

Descarga el archivo para practicar

Reporte para formatear – EXCELeINFO.zip

Si te gustó este tutorial, por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: