Automatizar tareas con Macros de Excel

Las macros en Excel permiten automatizar tareas repetitivas, como el procesamiento de datos, la generación de reportes, o cualquier otra tarea que involucre múltiples pasos manuales. Una macro es esencialmente una secuencia de instrucciones programadas en VBA (Visual Basic for Applications) que puede ejecutarse automáticamente para realizar esas tareas.

Pasos para crear y usar macros en Excel:

Activar la pestaña de Desarrollador

Como habilitar la pestaña programador o desarrollador en Excel
Para trabajar con macros, debes activar la pestaña de Desarrollador:

Ve a Archivo > Opciones > Personalizar cinta de opciones.
En el panel derecho, marca la casilla Desarrollador y haz clic en Aceptar.

Grabar una macro
Si no tienes experiencia programando, puedes usar la función de grabación para crear una macro. Excel registrará todos los pasos que realices.

Ve a la pestaña Desarrollador y haz clic en Grabar macro.
Asigna un nombre a la macro (sin espacios) y, si quieres, un atajo de teclado para activarla rápidamente.
Realiza las acciones que deseas automatizar (por ejemplo, dar formato a celdas, aplicar fórmulas, etc.).
Cuando termines, haz clic en Detener grabación.

Ver y editar el código VBA
Una vez grabada la macro, puedes ver y modificar el código en VBA:

Ve a Desarrollador > Visual Basic o presiona Alt + F11.
En el editor de VBA, encontrarás el módulo de la macro grabada. Aquí puedes refinar o personalizar el código.

Ejecutar la macro
Puedes ejecutar una macro desde la pestaña Desarrollador haciendo clic en Macros, seleccionando la que quieras, y luego en Ejecutar.
También puedes usar el atajo de teclado que configuraste o crear un botón en la hoja de cálculo que active la macro.

Aquí tienes una tabla con los 30 comandos principales que se utilizan comúnmente en macros de Excel mediante VBA. Estos comandos son útiles para seleccionar celdas, manipular datos, formatear hojas, controlar flujos y automatizar tareas repetitivas.

Range("A1").SelectSelecciona una celda o rango en la hoja activa.
Cells(1, 1).SelectSelecciona una celda usando índices de fila y columna.
Selection.CopyCopia el rango seleccionado.
Selection.PastePega el contenido copiado en el rango seleccionado.
ActiveSheet.PastePega el contenido en la hoja activa.
Application.CutCopyMode = FalseCancela el modo de cortar/copiar para liberar el portapapeles.
ActiveCell.Value = "Text"Asigna un valor a la celda seleccionada.
ActiveCell.Offset(1, 0).SelectMueve la selección de la celda una fila abajo o un número de filas
y columnas definidas.
Range("A1:B2").CopyCopia un rango de celdas.
Range("C1").PasteSpecialPega con opciones avanzadas, como valores, formato o fórmula.
ActiveSheet.Name = "NewName"Cambia el nombre de la hoja activa.
Sheets("Sheet1").SelectSelecciona una hoja por su nombre.
Rows(1).DeleteElimina la fila especificada.
Columns("A").DeleteElimina la columna especificada.
Range("A1").ClearContentsLimpia el contenido de la celda seleccionada sin eliminar el formato.
ActiveCell.FormulaR1C1 = "=SUM(R[-1]C:R[-2]C)"Asigna una fórmula en formato R1C1 a la celda activa.
Range("A1").Font.Bold = TrueAplica formato de texto en negrita a la celda seleccionada.
Range("A1").Interior.Color = RGB(255, 0, 0)Cambia el color de fondo de la celda.
Range("A1").Borders.LineStyle = xlContinuousAgrega bordes a una celda o rango.
Range("A1").NumberFormat = "0.00"Establece el formato numérico de la celda.
If ... Then ... Else ... End IfEstructura condicional para realizar diferentes acciones según condiciones.
For Each ... NextBucle que recorre una colección de celdas, hojas, o libros.
Do ... LoopBucle que se ejecuta mientras una condición sea verdadera.
With ... End WithAgrupa una serie de acciones para el mismo objeto o rango.
MsgBox "Text"Muestra un cuadro de mensaje con un texto personalizado.
InputBox("Enter value")Solicita al usuario ingresar un valor a través de un cuadro de diálogo.
Application.ScreenUpdating = FalseDesactiva la actualización de pantalla para acelerar el procesamiento
de la macro.
Application.DisplayAlerts = FalseDesactiva los mensajes de alerta (por ejemplo, para evitar mensajes de
confirmación al eliminar).
Workbooks.Open "C:\File.xlsx"Abre un archivo de Excel existente.
Workbooks.AddCrea un nuevo archivo de Excel.
ActiveWorkbook.SaveAs "C:\NewFile.xlsx"Guarda el archivo actual con un nuevo nombre o ubicación.

Estos comandos son la base para crear macros más complejas en Excel. Con ellos, puedes automatizar una amplia gama de tareas, desde operaciones básicas de celdas hasta la gestión de archivos y hojas.

Proyecto jurisdicciones

Sub Macro1prueba()
'
' Macro1prueba Macro
'

'
    Range("T221").Select
    ActiveCell.FormulaR1C1 = "903"
    Range("T221").Select
    Selection.Copy
    Range("T221:T223").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("T224").Select
    ActiveCell.FormulaR1C1 = "906"
    Range("T225").Select
    ActiveCell.FormulaR1C1 = "906"
    Range("T226").Select
    ActiveWindow.SmallScroll Down:=6
    ActiveCell.FormulaR1C1 = "907"
    Range("T226").Select
    Selection.Copy
    Range("T226:T230").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=6
    Range("T231").Select
    ActiveCell.FormulaR1C1 = "904"
    Range("T231").Select
    Selection.Copy
    Range("T231:T269").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=48
    Range("T270").Select
    ActiveCell.FormulaR1C1 = "905"
    Range("T271").Select
    ActiveCell.FormulaR1C1 = "905"
    Range("T272").Select
    ActiveCell.FormulaR1C1 = "908"
    Range("T272").Select
    Selection.Copy
    Range("T272:T278").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=6
    Range("T279").Select
    ActiveCell.FormulaR1C1 = "910"
    Range("T280").Select
    ActiveCell.FormulaR1C1 = "911"
    Range("T280").Select
    Selection.Copy
    Range("T280:T282").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=6
    Range("T283").Select
    ActiveCell.FormulaR1C1 = "913"
    Range("T283").Select
    Selection.Copy
    Range("T283:T288").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=3
    Range("T289").Select
    ActiveCell.FormulaR1C1 = "914"
    Range("T289").Select
    Selection.Copy
    Range("T289:T295").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=6
    Range("T296").Select
    ActiveCell.FormulaR1C1 = "915"
    Range("T296").Select
    Selection.Copy
    Range("T296:T301").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=9
    Range("T302").Select
    ActiveCell.FormulaR1C1 = "916"
    Range("T302").Select
    Selection.Copy
    Range("T302:T312").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=6
    Range("T313").Select
    ActiveCell.FormulaR1C1 = "917"
    Range("T313").Select
    Selection.Copy
    Range("T313:T315").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=9
    Range("T316").Select
    ActiveCell.FormulaR1C1 = "919"
    Range("T316").Select
    Selection.Copy
    Range("T316:T321").Select
    ActiveSheet.Paste
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=9
    Range("T322").Select
    ActiveCell.FormulaR1C1 = "920"
    Range("T323").Select
    ActiveCell.FormulaR1C1 = "921"
    Range("T323").Select
    Selection.Copy
    Range("T324:T357").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWindow.SmallScroll Down:=39
End Sub

Comandos principales:
Range().Select: Selecciona un rango de celdas.
ActiveCell.FormulaR1C1: Asigna un valor o fórmula a la celda seleccionada.
Selection.Copy: Copia el contenido de la celda o rango seleccionado.
ActiveSheet.Paste: Pega el contenido copiado en el rango seleccionado.
Application.CutCopyMode = False: Cancela el modo de copiar/cortar para evitar mantener activado el portapapeles.
ActiveWindow.SmallScroll: Desplaza la vista de la ventana en la hoja activa.

Funciones de Excel en Inglés y Español

Deja un comentario

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