Excel Avanzado

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

Excel Avanzado

¿Qué son las Macros en Excel?

En nuestra página encontrarás muy diversos ejemplos que te permitirán aprender a trabajar con las Macros en Excel, descubrirás ¿Qué son las Macros en Excel?, ¿Cómo crear Macros en Excel?, ¿Cómo habilitar las Macros en Excel?,  todo nuestro contenido puede ser considerado como un manual de Macros en Excel, o un tutorial de Macros en Excel.

¿Qué es una Macro en Excel?

Las Macros en Excel son un conjuntos de instrucciones que se ejecutan de manera secuencial por medio de una orden de ejecución, claro esta que una Macro puede invocar a otras, logrando de esta forma obtener operaciones cada vez mas complejas.

En el caso de Excel el lenguaje empleado para el uso de Macros es VBA (Visual Basic para Aplicaciones), Excel cuenta con un "Editor de Visual Basic"  o también conocido como "Editor de VBA" que permite la creación, y/o mantenimiento de las Macros que se tengan disponibles.

¿Dónde están las macros en Excel? 

Cuando se abre el Editor de VBA, encontramos diversos objetos como: hojas, thisworkbook, módulos y formularios. Si bien la mayoría de las veces las macros se encuentra en los módulos, también es posible que se tengan macros en las hojas, thisworkbook o en los formularios. 

Donde están las macros en Excel

¿Para qué sirve una Macro en Excel?

Las Macros en Excel son útiles entre otras cosas por que permiten la automatización de tareas repetitivas, por ejemplo si se da cuenta que todos lo días se encuentra creando la misma tabla dinámica (pero con distintos datos), o colocando el mismo formato a una hoja, entonces es el momento de automatizar dicha labor por medio de Macros.

En el siguiente artículo se puede ver mas de cerca la utilidad de una macro.

¿Cómo crear una Macro en Excel?

El punto fuerte a favor del uso de Macros, es que es sencillo de aprender a crearlas y ejecutarlas, crear Macros es simple, y se puede llegar a ahorrar mucho tiempo remplazando aquellas tareas repetitivas por Macros que usted mismo haya creado, uno de los primeros pasos para acercarse al uso de Macros puede ser el comenzar a utilizar el grabador de Macros.

Los siguientes ejemplos te pueden servir para empezar a aprender a crear una Macro en Excel

  1. Orden de tabulación en formulario Excel
  2. ¿Cómo sacar un porcentaje en Excel?
  3. Ventajas y Desventajas de VBA
  4. Procedimiento sub
  5. El entorno del Editor de Visual Basic
  6. Habilitar Macros en Excel para Mac
  7. ¿Cómo configurar la Ficha Desarrollador?
  8. ¿Para qué sirve el editor de Visual Basic?
  9. Escribe tu primera Macro en Excel
  10. Ficha Desarrollador en Excel
  11. ¿Qué es un módulo de VBA?
  12. ¿Cómo editar una Macro?
  13. ¿Cómo se elimina una Macro en Excel?
  14. ¿Cómo se graba una macro?
  15. ¿Cómo activar las macros en Excel?
  16. ¿Cómo hacer una macro sencilla en Excel?
  17. ¿Cómo activar la Ficha Desarrollador en Excel?
  18. ¿Cómo crear una macro en Excel?
  19. ¿Cómo mostrar la ficha Desarrollador?
  20. ¿Cómo hacer macros en Excel?
  21. ¿Cómo crear una macro paso a paso?
  22. Grabar macros con Referencias Absolutas
  23. ¿Cómo probar si funciona una macro?
  24. ¿Cómo crear una macro? (grabador de macros)
  25. ¿Cómo ejecutar una macro?
  26. Habilitar o deshabilitar macros en Excel
  27. Distintas formas de llamar a un procedimiento o función con vba
  28. Uso de Referencias Relativas en la ficha Programador

¿Cómo aprender macros en Excel?

En este blog creemos que una forma sencilla de aprender a crear Macros en Excel, es aprender los conceptos mediante ejemplos por procuramos que todos lo descrito en el blog cuente con ejemplos que pueda emplear, una de las primeras cosas que podríamos consultarnos es donde empezar, lo aconsejable sería revisar algunos conceptos sencillos que nos den los fundamentos para abordar temas mas complejos, puede comenzar revisando el siguiente enlace Introducción a las Macros a fin de ir revisando los temas iniciales.

Si lo que desea es contar con un curso que lo pueda guiar paso a paso, lo puede hacer visitando nuestra página, o llevando uno de nuestro cursos: https://www.excel-avanzado.com/curso-virtual-excel 

La mayoría de ejemplos que encontrarás en este blog son compatibles desde la versión 2010 (pueden funcionar con Excel 2010 y versiones superiores), la mayoría de los ejemplos han sido probados también en las versiones 20013, 2016 y 2019, muchos de los ejemplos son también compatibles con Excel 2007.

33 comentarios

  1. Debemos comprender que Excel es uno de los programas del paquete Office más completos y avanzados, es decir que con Excel se podría un sin fin de aplicaciones y más aún si entramos en la parte automatizada con la utilización de Macros, pero si a ello le añadimos la programación VBA su funcionalidad se potencia a niveles que solo nuestra imaginación y creatividad nos pueda dar.

  2. Buenos días,

    Yo he creado una tabla dinámica donde quiero darle un formato específico y que cuando cambie datos siga ese formato, he pensado hacerlo a través de VB pero no se bien el código.

  3. Buenas tardes desearia que me ayuden. por favor podrian decirme cual es el comando de programacion en excel

    • Estimada Pricila,

      Estos son los pasos para activar la Ficha Programador,
      1er paso.- Ir al botón de Microsoft Office, dar clic a opciones de Excel.
      2do paso.- Activar con un check a la alternativa que dice “Mostrar ficha programador en la cinta de opciones” (observarás que aparece en tu hoja del libro excel una nueva pestaña con dicho nombre “Programador”).

      Saludos

      • LO ENCUENTRAS COMO DESARROLLADOR

  4. Quisiera saber cómo resolver una inquietud que tengo con un libro de Excel. Actualmente estoy digitando las compras de un pequeño comercio y me gustaría confeccionar un calendario que mostrara las fechas de pago y los pagos de las compras, como un calendario con los días, y que a medida que ingreso compras se fuera actualizando. Si alguien sabe y me dice, qse lo agradecería mucho.

  5. Deseo extraer informacion de una pagina web con macros.. ¿Que debo hacer?

    • Primero que nada debes seleccionar la opción en donde te proyecta habilitar macros, ya que de esa manera podrás dinamizar con el Excel y con las macros también

  6. Que tal buenas tardes, quisiera pedir ayuda referente a una macro por asi decirlo, eh visto muchos ejemplos en blogs y se utilizan para sacar la suma de distintas facturas buscando un solo numero , en este caso uso la funcion de =sumproduct y despues aplico solver, tienen alguna idea si pudiera aplicar alguna macro o tabla pivot

    Muchas gracias por su ayuda...

  7. Necesito conocer como se hace una macro para analisis de costo en el sector de la construccion. Ayudenme por favor

  8. Buenos dias,
    Es posible habilitar un macro o programar un archivo en Excel que se alimente solo o dándole una opción o programación de otros archivos todos en Excel?

    No se si me doy a entender mas claro seria si yo en mi PC tengo el archivo principal y mis empleados cada uno usa ese archivo por separado y al tiempo en cada uno de sus PC y todo los que ellos vayan haciendo se vea en mi PC.

  9. buen dia me podrias explicar el siguiente codigo

    Public Function GeneradorXml(FullPath As String, FmtoName As String, Anexo As String) As Boolean
    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler

    Dim colIndex As Integer
    Dim rwIndex As Integer
    Dim asCols() As String
    Dim oWorkSheet As Worksheet
    Dim Datosworksheet As Worksheet
    Dim sName As String
    Dim lCols As Long, lRows As Long, campo As Long
    Dim iFileNum As Integer

    Set oWorkSheet = ThisWorkbook.Worksheets(1)
    sName = oWorkSheet.Name
    lCols = oWorkSheet.Columns.Count
    lRows = 2

    ReDim asCols(lCols) As String

    iFileNum = FreeFile
    Open FullPath For Output As #iFileNum

    Worksheets(FmtoName).Activate
    datosname = Worksheets(FmtoName).Name
    datoscols = Worksheets(FmtoName).Columns.Count
    datosrows = Worksheets(FmtoName).Rows.Count
    campo = 0

    For k = 0 To datoscols - 1
    If Trim(Cells(1, k + 1).Value) = "" Then Exit For
    Next k
    If k = 0 Then GoTo ErrorHandler
    datoscols = k

    For m = 0 To datosrows - 1
    If Trim(Cells(m + 1, 1).Value) = "" Then Exit For
    Next m
    If m = 0 Then GoTo ErrorHandler
    datosrows = m

    For i = 4 To datosrows
    If Trim(Cells(i, 1).Value) = "" Then Exit For
    For j = 2 To datoscols
    campo = Cells(3, j).Value
    espaciosalf = String((campo - Len(Trim(Cells(i, j).Value))), " ")
    espacios = String((campo - Len(Trim(Cells(i, j).Value))), "0")
    If (Cells(2, j).Value) = "Num" Then
    Print #iFileNum, espacios & Trim(Cells(i, j).Value);
    Else
    Print #iFileNum, Trim(Cells(i, j).Value) & espaciosalf;
    End If

    Next j
    Print #iFileNum, vbLine
    Next i

    ExportToXml = True
    MsgBox "Archivo Generado Correctamente en c:\" & FmtoName & ".DAT ", vbInformation
    oWorkSheet.Activate
    End

    ErrorHandler:
    If iFileNum > 0 Then Close #iFileNum
    MsgBox "No se pudo generar el archivo " & FmtoName & ".TXT' " & vbCrLf & vbCrLf & _
    "1-. Verifique y corrija el siguiente campo que excedio el espacio asignado" & vbCrLf & vbCrLf & _
    "HOJA : " & datosname & vbCrLf & "COLUMNA : " & Cells(1, j).Value & vbCrLf & "FILA : " _
    & i & vbCrLf & vbCrLf & "Campo : '" & Cells(i, j) & "" & vbCrLf & "Ancho Maximo del Campo : " & Cells(3, j).Value _
    & vbCrLf & "Ancho del Registro : " & Len(Trim(Cells(i, j).Value)), vbCritical
    oWorkSheet.Activate
    Exit Function
    End Function

    es para crear un archivo plano

  10. Hola tengo un problema que se me presento en mi trabajo, tengo que realizar una planilla de reportes con datos que van variando cada media hora y quisiera colocar todos esos datos en mi planilla de forma automática. el problema esta en que cada dato se presenta en una tabla de forma independiente dentro de una misma carpeta y no se como exportar cada tabla a mi planilla de reporte y unificar todos esto.. Alguien sabe como solucionar esto.?????

    saludos

    • que tal amigo aun sigues trabajando o pudiste resolver el problema tengo uno similar!

  11. Buen día.. Tengo una duda..
    Si yo hago una macro en mi hoja de cálculo de mi pc utilizando la macro , y quiero cruzar infórmacion a otra computadora que no esté la misma macro o función,,,que le pasaría a información cruzada en la computadora que no tiene la misma macro????

  12. Cómo hago esto: Crear una Macro que valide el formato de la celda, de la siguiente forma: Si esta negrita, Itálica o subrayado que lo elimine, y si no está que lo agregue para cada formato individualmente.

  13. Buenas tardes,

    Me podrian pasar el contacto de alguien que me pudiera ayudar a realizar un Macros?

    Saludos

  14. Hola les agradesco averme ayudado con el tutorial muchas gracias

  15. COMO PUEDO CREAR UNA MACRO PARA DAR UN COLOR DE FONDO A LOS ENCABEZADOS DE COLUMNAS DE UNA TABLA DE EXCEL

  16. Hola,
    estoy creando una base de datos con imagenes, y necesito que al momento de digitar el documento del trabajador aparezca la foto del mismo. osea, que la formula macro quede en base a la celda donde se digita el documento.

    estuve intentando de diversas formas y no resulta lo que esperaba.

    Help´me. please

  17. Muy buenas noches
    Requiero de su conocimiento porfavor
    Porque al BOTÓN DE OPCIONES en la barra de fórmulas colocan =INCRUSTAR (Forms.CheckBox.1","")
    Saludos
    y me podrían recomendar unos libros que estudie y entender acerca de programacion y macros gracias

  18. Que tal, busco una macro para hacer lo siguiente.

    Ingresar datos de a1 a a49 y que el dato 50 pase atumaticamente a b1 así llegando hasta d49. Y de d49 regrese a a50 y así sucesivamente.

    Esto es que tengo listados acomodados en una sola columna y a la hora de imprimir se desperdicia mucho espacio

  19. hola a todos, mi pregunta es si me pueden indicar tips, tengo una macro en la cual ingreso los datos, y borro sólo algunos datos del menú, ya que necesito el resto de la información, pero al completar nuevamente la ficha y darle enter, sólo copia lo modificado y lo que deje sin borrar no se copia y quedan blanco. Es mi primera macro en muchos años, gracia a quienes respondan

  20. hola buenos días.

    hice una macro donde al final tiene la instrucción de crear el rango de impresión, pero no se si sea correcto lo que hice ya que yo de digo que se posicione en la celda a10 y le doy shift+fin pero se queda grabado el rango de prueba y no lo actualiza cada que se corre la macro , es decir si al momento de crear la macro se obtiene el rango A10..AA1000 es el que se queda grabado pues cuando la vuelvo a generar el rango solo es A10..AA50 y no lo refresca se queda el primero y me dice que mi rango es de 20 hojas cuando debería de ser solo una. me pueden apoyar para saber que es lo que estoy haciendo mal o si esa opción no es lógica para las macros.

Página de comentarios 1 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.