Excel Avanzado

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

Excel Avanzado

VBA en Excel

¿Qué es VBA ?

Microsoft VBA (Visual Basic for Applications ) es un lenguaje de macros que se emplea para crear aplicaciones que permiten ampliar la funcionalidad de programas de la suite Microsoft Office. Se puede señalar que Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic, Microsoft VBA al estar incluido dentro del Microsoft Office, puede emplearse tanto en Word, Excel, Access así como en Powerpoint. 

¿Cuál es la utilidad de Visual Basic para Aplicaciones?

La principal utilidad es radica en poder automatizar tareas frecuentes o cotidianas , algunas otras utilidades son:

- Crear sus propias funciones (funciones definidas por el usuario), que puedan ser invocadas de forma similar a las ya existentes, extendiendo las más de 300 funciones de Excel que vienen por defecto.

- Crear pantallas (por medio de formularios), para la ejecución de procesos o rutinas frecuentes.

- Lograr ahorros de tiempo considerables por medio de la automatización de las tareas frecuentes.

- Automatizar la interacción con otras herramientas de la familia Office (Word, PowerPoint, etc) 

 

Curso de VBA en Excel

Si estas empezando, y deseas conocer todos sobre  VBA , te invitamos a revisar la http://www.excel-avanzado.com/introduccion-a-las-macros

En esa página introductoria podrás aprender a: 

- Aprender VBA desde cero.

- Programar en Excel, utilizar la programación en VBA con facilidad.

- Utilizar Visual Basic en Excel 2019, 2016, y versiones previas.

- Usar el editor de VBA con destreza

- Usar los códigos de VBA, reconocer las instrucciones en VBA Excel

Uno de los aspectos mas importantes para dominar el lenguaje son las funciones que puedes emplear para las diversas macros a elaborarse visita Macros Funciones

Código en VBA en Excel

Si ya conoces algo y deseas revisar los mejores códigos VBA que tenemos por aquí te invitamos a revisar cualquiera de los siguientes artículos.

  1. Ejercicios resueltos de VBA
  2. Validar datos en VBA
  3. Sorteo en Excel con Macros
  4. RemoveDuplicates VBA Excel
  5. Uso de fechas en VBA
  6. Doble condicional en VBA
  7. Manipular Formatos en VBA
  8. Proceso Masivo de Datos
  9. Fechas en Formulario con VBA
  10. Simular usuario y Password en VBA
  11. El Modelo de Objetos de Excel
  12. VBA Guardar Como
  13. Quitar duplicados en VBA
  14. Macro para abrir y cerrar archivos en Excel
  15. Generar números primos en Excel
  16. Pantalla completa en Excel (VBA)
  17. Ventajas de usar Macros en Excel
  18. Personajes Principales de SAILOR MOON
  19. Lista Pokemon Excel
  20. Seleccionar rango en VBA
  21. 5 tips de macros recomendables
  22. 5 conceptos básicos de VBA
  23. 5 ejemplos de Macros con FOR
  24. Cinco conceptos para aprender VBA
  25. Mis cinco ejemplos “if…then…else” favoritos
  26. Mis 5 ejemplos favoritos de Macros
  27. 5 trucos de Macros recomendables
  28. 5 ejemplos de gráficos con macros
  29. 5 Funciones en VBA imprescindibles
  30. 5 Mejores ejemplos de tablas dinámicas con macros
  31. 5 ejemplos de uso de Loop
  32. 5 macros para el manejo de hojas en Excel
  33. 5 Ejemplos de macros con Select Case
  34. 5 Ejemplos de Macros con For
  35. Mis 5 ejercicios favoritos de userforms
  36. 5 macros para el manejo de rangos en Excel
  37. 5 Ejercicios de Funciones definidas por el usuario
  38. 5 Trucos de VBA necesarios
  39. 5 ejemplos favoritos de Userforms
  40. 5 ejemplos de macros con With
  41. 5 ejemplos para comenzar a usar Macros
  42. Ejemplos de funciones definidas por el usuario
  43. 5 macros para el manejo de libros en Excel
  44. ¿Qué es el WACC?
  45. Suma de decibeles
  46. Números Primos
  47. Catálogos de imágenes con Macros

11 comentarios

  1. Gracias por la ayuda a distancia porque en las universidades de El Salvador esto no se enseña en curriculum de grado en informatica (5 años)

    Ok

  2. Buenos días.

    Tengo un archivo Excel con una lista de empresas ordenadas por su Número de Registro, Nombre Empresa, Dirección y otros datos.

    En otro archivo Excel, en la HOJA 1 inserté un TextBox en el cual ingreso el número de registro de una empresa.

    Como puedo hacer para que un segundo TextBox me aparezca el nombre de la empresa asociado a ese numero de registro (si es que existe).

    Desde ya muy agradecido por la ayuda que me puedan brindar.

  3. Tengo un Libro Excel, en Hoja "Datos", con todos los datos del personal, en Hoja "Puestos2" los empleados que a su vez, también tienen un SEGUNDO cargo y función, y otra Hoja "Sucursales" todas las sucursales, Al utilizar Macro y crear otro Libro con un Listado, carga los datos que quiero mostrar, y todas las Sucursales, pero no logro hacer mostrar los empleados con SEGUNDO cargo y función de la Hoja"Puestos2"

    Do While Sheets("Sucursales").Cells(filaD, 2) Empty
    'Nombre del Destino
    wbListado.Sheets("Hoja1").Cells(filaN, 1) = Sheets("Sucursales").Cells(filaD, 3)
    filaN = filaN + 1
    VarSuc = Sheets("Sucursales").Cells(filaD, 2)

    Do While Sheets("Datos").Cells(fila, 13) = VarSuc
    If Sheets("Datos").Cells(fila, 13) Empty And Conta = 0 Then
    wbListado.Sheets("Hoja1").Cells(filaN, 1) = Sheets("Datos").Cells(fila, 1)
    wbListado.Sheets("Hoja1").Cells(filaN, 2) = Sheets("Datos").Cells(fila, 2)
    wbListado.Sheets("Hoja1").Cells(filaN, 3) = Sheets("Datos").Cells(fila, 8)
    End If
    Loop
    Do While Sheets("Puestos2").Cells(fila, 15) = VarSuc
    If Sheets("Puestos2").Cells(fila, 15) Empty And Conta = 0 Then
    wbListado.Sheets("Hoja1").Cells(filaN, 1) = Sheets("Puestos2").Cells(fila, 1)
    wbListado.Sheets("Hoja1").Cells(filaN, 2) = Sheets("Puestos2").Cells(fila, 2)
    wbListado.Sheets("Hoja1").Cells(filaN, 3) = Sheets("Puesto2").Cells(fila, 8)
    End If.
    Loop
    Loop

  4. Hola,

    Gracias por las muchas aportaciones, sois un pilar básico en mi progresión en el aprendizaje de creación de macros con las que estoy sacando un partido al excel que ni imaginaba un año atrás.

    Os quería preguntar si hay alguna forma de editar un código vba en excel mediante una macro, es decir si por ejemplo tengo varios archivos excel que todos contienen una misma macro y las quisiera editar todas... ¿hay alguna forma de hacerlo en bloque o de forma automatizada que me evitara entrar de una en una manualmente y hacer un copiar / pegar?.

    Saludos y gracias por anticipado,

  5. Buenos días. Mi inquietud es la siguiente
    Quiero realizar un formulario que tenga los siguientes botones; cerrar, guardar, buscar y editar. Pero cuando le de buscar me traiga los datos de la hoja y los pueda editar y pueda guardar los cambios pero directamente desde el formulario.
    Muchas gracias

  6. Hola , necesito ayuda , tengo una macro en el libro1 , el cual realiza la copia de la hoja1 de otro libro en una carpeta en el escritorio
    todo lo hace ok pero solo con archivos con formato .xlsx , como hago para que lea tambien el formato SCV???

    Este es el codigo:

    Sub Buscar_bases() 'Data Canal
    Application.ScreenUpdating = False
    With Sheets("Data")
    'verificamos si hay datos en la hoja donde se almacenaran los resultados
    datos = Application.CountA(.Range("A2:A9"))
    'insertamos una linea para poder limpiar el rango
    .Range("A1:I1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    'si hay datos en la hoja donde se almacenaran los resultados los borramos para actualizarla
    With .Range("A2:I5000")
    If datos > 0 Then .ClearContents
    'definimos de que libro extraeremos los datos
    ruta_libro = Cells(15, 4)
    nombre_libro = Cells(1, 23)
    nombre_hoja = "Hoja1"
    'insertamos las formulas
    .Formula = "='" & ruta_libro & "\[" & _
    nombre_libro & "]" & nombre_hoja & "'!a1"
    'dejamos solo los valores
    .Value = .Value
    .HorizontalAlignment = xlCenter
    End With
    'recorremos el rango para eliminar ceros
    For b = 1 To 9
    With .Columns(b)
    .AutoFilter Field:=1, Criteria1:="=0", Operator:=xlOr, Criteria2:="=00"
    .SpecialCells(xlCellTypeVisible).ClearContents
    .AutoFit
    End With
    Next
    'eliminamos la linea que habiamos inssertado
    .Range("A1:I1").Delete Shift:=xlUp
    End With

    Application.ScreenUpdating = True
    End Sub

  7. HOLA, BUENAS TARDES! TENGO UNA DUDA CON RESPECTO A LA FORMULA SUMAR.SI

    En un reporte de caja que llevo por ventas, quiero sumar lo que tengo de venta en dinero del concepto de Diesel, incluyendo si fue en efectivo, transferencia o cheque. use la funcion sumar si, donde pongo en rango, donde estan los conceptos, en criterio pongo el concepto que quiero sumar osea Diesel, y en rango de suma los importes, seleccionado tres columnas. Y el problema aqui es que solo me suma lo de una columna... le estare haciendo mal? no me explico

  8. Unas las primeras cosas a aprender es el manejo de funciones, tanto las correspondientes al propio lenguaje, VBA o macros, como a las funciones definidas por el usuario.

  9. Hola

    Gracias por tu valiosa plataforma. Quisiera saber cual seria el codigo para hacer un cambio de contraseña. Es decir, que el usuario tenga la posibilidad de cambiar su contraseña sin necesidad de entrar a VB. Gracias de antemano.

  10. Buen dia

    este es mi codigo para buscar en una base de datos, pero quiero hacerlo para que al modificar algun dato de la busqueda se guarde con los nuevos datos capturados

    Sub Buscarrack()
    Dim celda As Range

    If Hoja1.Range("E9") = "" Then
    MsgBox "Escriba un Num de RACK para buscar."

    Else
    Set celda = Hoja2.Range("A:A").Find(What:=Hoja1.Range("E9").Value, _
    After:=Hoja2.Range("A1"))

    If celda Is Nothing Then
    Hoja1.Range("E9").Value = ""
    MsgBox "Este RACK no ah sido capturado"
    Else
    Hoja1.Range("E5").Value = celda.Offset(0, 1).Value 'mostrar fecha
    Hoja1.Range("I5").Value = celda.Offset(0, 2).Value 'mostrar usuario
    Hoja1.Range("E7").Value = celda.Offset(0, 3).Value 'mostrar Area
    Hoja1.Range("I7").Value = celda.Offset(0, 4).Value 'mostrar ubicacion
    Hoja1.Range("E11").Value = celda.Offset(0, 5).Value 'mostrar 11s
    End If
    End If

    End Sub

Deja una respuesta

Los campos requeridos estan marcados con *.