El origen de la palabra macro se remonta al griego, tal como lo define Wikipedia (μακρο, makro, que significa ‘grande’).
Las macros en programación son una serie de instrucciones que se pueden ejecutar de manera secuencial desde que se realiza la invocación a la ejecución . Cada una de las instrucciones de las cuales están compuestas son instrucciones sencillas. El principal beneficio de las macros radica en poder lograr la automatización de tareas repetitivas.
Las macros pueden almacenarse y emplearse dentro del propio programa que las utiliza, por ejemplo en Excel las macros suelen formar parte del mismo archivo en el cual se desea que las macros sean ejecutadas.
Lenguaje de Programación usado en las Macros
Las macros en Excel, se realizan por medio de un lenguaje de programación conocido como VBA , "Visual Basic para Aplicaciones", o "Visual Basic for Applications".
A la lógica que se utiliza para escribir las macros se le conoce como Algoritmo, podemos ver más al respecto en: ¿Qué es un Algoritmo?
A la técnica empleada, por medio de este lenguaje de programación, para escribir las Macros se le conoce Programación Estructurada, puede examinar más sobre este concepto en: ¿Qué es Programación Estructurada?
Todo sobre Macros en Excel
Los primeros pasos para empezar a usar las macros los podemos ver en: Crear macro paso a paso.
Otros conceptos iniciales los podemos encontrar en:
Introducción a las Macros en Excel
Macros avanzadas de Excel
Algunos de los mejores ejemplos de macros:
- Ejercicios resueltos de VBA
- Validar datos en VBA
- Sorteo en Excel con Macros
- RemoveDuplicates VBA Excel
- Uso de fechas en VBA
- Doble condicional en VBA
- Manipular Formatos en VBA
- Proceso Masivo de Datos
- Fechas en Formulario con VBA
- Simular usuario y Password en VBA
- El Modelo de Objetos de Excel
- VBA Guardar Como
- Quitar duplicados en VBA
- Macro para abrir y cerrar archivos en Excel
- Generar números primos en Excel
- Pantalla completa en Excel (VBA)
- Ventajas de usar Macros en Excel
- Personajes Principales de SAILOR MOON
- Lista Pokemon Excel
- Seleccionar rango en VBA
- 5 tips de macros recomendables
- 5 conceptos básicos de VBA
- 5 ejemplos de Macros con FOR
- Cinco conceptos para aprender VBA
- Mis cinco ejemplos “if…then…else” favoritos
- Mis 5 ejemplos favoritos de Macros
- 5 trucos de Macros recomendables
- 5 ejemplos de gráficos con macros
- 5 Funciones en VBA imprescindibles
- 5 Mejores ejemplos de tablas dinámicas con macros
- 5 ejemplos de uso de Loop
- 5 macros para el manejo de hojas en Excel
- 5 Ejemplos de macros con Select Case
- 5 Ejemplos de Macros con For
- Mis 5 ejercicios favoritos de userforms
- 5 macros para el manejo de rangos en Excel
- 5 Ejercicios de Funciones definidas por el usuario
- 5 Trucos de VBA necesarios
- 5 ejemplos favoritos de Userforms
- 5 ejemplos de macros con With
- 5 ejemplos para comenzar a usar Macros
- Ejemplos de funciones definidas por el usuario
- 5 macros para el manejo de libros en Excel
- ¿Qué es el WACC?
- Suma de decibeles
- Números Primos
- Catálogos de imágenes con Macros
13/05/2015 a las 2:16 pm
Hola, tengo una pregunta, no se si este sea el medio para hacerla llegar: Tengo una macro que es para darle formato a un reporte, al cual le agrego una columna -formula- en la linea 3 y luego con "doble click" para llenar -como copy paste- las celdas de abajo., el punto es que, cuando hice la macro tenia 150 registros aprox, y asi se grabo la macro, pero ahora tiene aprox 200, y de hecho cada dia varía tantitos renglones mas,, tantitos renglones menos, ¿como puedo hacer que se copien a la cantidad de renglones exacta de cada dia? es decir, que el "paste" varíe segun el numero de renglones. Muchas Gracias.
22/05/2015 a las 12:37 am
Hola Dany ... por lo que mencionas tienes que examinar tu código para determinar donde se aparece "150" .. que es la cantidad para la que funciona tu código .. luego usar el código de la última fila en reemplazo de ese 150 .. para que funcione para cualquier cantidad de registros que existan.
https://www.excel-avanzado.com/2791/identificar-la-ultima-fila-en-uso-con-vba.html
Saludos
27/05/2015 a las 10:40 pm
Hola amigos tengo una duda quiero saber si porfavor me la responden
¡Como hago una aplicacion que me permita alquilar autos a los clientes verificando que los autos de mi lista se encuentren disponibles ?
Muchisimas Gracias soy del Lago de Yojoa Honduras"!!!!
10/08/2015 a las 6:40 pm
Estimados, junto con saludar, me es de gran interés realizar una macro en la cual realice una búsqueda en todas las hojas y con datos repetidos. Por ejemplo, en el libro cuento con 25 hojas, donde cada una de estas hojas representa a cada trabajador. En estas hojas contamos con una columna de w/o, donde cada técnico trabaja en w/o similares. La búsqueda es para verificar quien está trabajando en esas w/o. es bastante simple realizarlo con Ctrl+b y buscar todo, pero me gustaría realizarlo de forma más amigable para los técnicos.
Desde ya se agradece.
Saludos.
20/04/2016 a las 8:07 am
Muy interesante la información que brindan, estoy interesada en aprender macros.
gracias
saludos
12/06/2016 a las 6:32 pm
estoy intentado realizar mi propio programa par contrlar una farmacia pequeña con 2 sucursales mas pequeñas y al realizar me obstruye indicandome que no estan habilitadas mis macros ya lo habilite las macros como encontre en el internet pero sigue saliendome ese mensaje necesito ayuda !!!urgente !!!
01/07/2016 a las 4:33 pm
Lo usual es realizar el cambio en el nivel de seguridad, tal como se muestra en:
https://www.excel-avanzado.com/16620/cambiar-el-nivel-de-seguridad-en-excel-2010.html
a veces (en alguna ocasión) es necesario cerrar el Excel completamente, y en la siguiente ocasión ya aparecerá correctamente.
22/08/2016 a las 6:07 am
hola, he copiado el siguiente codigo de una macro, me da este error :
" error compilacion... caracter no valido "
Decir que uso excel 2010
function conversorSegundosHoras($tiempo_en_segundos) {
$horas = floor($tiempo_en_segundos / 3600);
$minutos = floor(($tiempo_en_segundos - ($horas * 3600)) / 60);
$segundos = $tiempo_en_segundos - ($horas * 3600) - ($minutos * 60);
$hora_texto = "";
if ($horas > 0 ) {
$hora_texto .= $horas . "h ";
}
if ($minutos > 0 ) {
$hora_texto .= $minutos . "m ";
}
if ($segundos > 0 ) {
$hora_texto .= $segundos . "s";
}
return $hora_texto;
}
19/10/2016 a las 4:53 am
Saludos, desde hace tiempo su web me ha ayudado en muchos problemas que me han ido surgiendo a la hora de implementar soluciones en office, me ha surgido un problema:
-Uso una macro para pasar informacion contenida en varios libros de excel, al ser muy diferente la informacion utilizo varialbes de tipo string para capturar la informacion -->
' declaracion de variales, asi hago con todas, ya que tengo fechas, valores numericos y celdas con texto e incluso formulas (aluna suma, resta o lo que corresponda en esa determinada posicion)
Dim p01_j20 As String
'voy cambiando de hoja en funcion de los datos a asignar a mis variales ya que algunas las uso varias veces
Sheets("P01").Select
p01_j20 = Range("J20")
'P01_J20_I es el bookmark que tengo insertado en word y mete el valor de la variable optenida desde excel
Call insertar_campo("P01_J20_I", p01_j20)
'macro inserta en word el bookmark
Sub insertar_campo(arg1 As String, arg2 As String)
'Cada vez que se inserte un campo en el word se llamara al procedimiento
wdApp.activedocument.bookmarks(arg1).Range.Select
wdApp.Selection.TypeText Text:=arg2
End Sub
mi problema es que en el word al insertar el dato mediante bookmarks los numero se me pegan sin formato
muchas gracias de antemano y seguid asi, ayudais a mucha gente
un saludo
19/10/2016 a las 11:36 am
Ya lo he encontrado, buscando por ahi -->
p02_j20 = Format(Range("J20"), "#,##0.00")
en este caso me aplica formato de miles
07/01/2017 a las 3:40 pm
Hola Carlos
Se puede probar con lo siguiente:
https://www.excel-avanzado.com/183/copiar-un-contenido-de-excel-a-word.html
07/11/2016 a las 7:48 am
Tengo una cantidad de registro bastante robusta en Excel, entre los campos que tengo existe uno que se llama "Obj_Accion" (que corresponde la dirección). Lo que necesito hacer es que una macro me identifique las celdas de esta columnas que están vacías, y me las copie (con toda su fila) a otra hoja excel.
¿es posible?
10/11/2016 a las 7:25 am
Hola,
Quisiera hacer una macro para que, eligiendo dd, mmm, yyyy de un calendario desplegable, se abra un archivo que contiene en su nombre esa fecha seleccionada.
Muchas gracias,
Saludos,
18/03/2018 a las 5:43 pm
HOLA BUENAS TARDES
EN UN FORMULARIO SI HAY UNA VARIABLE QUE DETERMINE EL ULTIMO
REGISTRO DE LA HOJA COMO LA UTILIZO PARA DIFERENTES HOJAS COMO DECLARO LA FORMULA PARA DIFERENTES HOJAS Y EL FORMULARIO ME SIRVA PARA TODAS MIS HOJAS GRACIAS
21/12/2019 a las 8:46 am
Mucho gusto en tener contacto con Uds. Soy profesor de cursos de informática y requiero ampliar mis conocimiento conocimientos en excel avanzado.
29/06/2021 a las 12:50 pm
Buen día es posible a través de una macro en vba en excel enviar un mensaje a través de microsoft teams? Saludos