Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como Insertar Formula en Excel con Macro #482

Insertar Formulas en Excel

Macro Excel para insertar formulas de excel

En este post muestro Como Insertar Formulas de Excel con Macro, en el ejemplo se muestra como crear una formula en determinadas celdas, como así también como crear una formula para calcular un saldo y copiarla hacia abajo todo con macros de Excel.

Para manejar Excel en forma eficiente haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

El vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textboxcomo crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailtrabajando con filas, celdas, columnas, rangos y muchos ejemplos más.

Ingresar formulas en excel con macro como funciona el ejemplo 

Al descargar el ejemplo se muestran dos botones uno que permite ingresar formulas y el otro permite deshacer los cambios para que se puede ejecutar la macro una y otra vez y observar los cambios.

La Macro de Excel insertará una suma de los importes de la columna G, también insertará una formula que calcule el promedio de la columna G, en la columna H2 insertará una formula que calcule el saldo de la columna G y la misma macro a través de Autofill rellenará o copiará las formulas hacia abajo, igual a como si arrastráramos con el mouse para copiar formulas.

Código de VBA que permite insertar formulas Excel con macro

El código mostrado en este ejemplo para solucionar el problema de como realizar formulas en excel con macros en permite en primer lugar insertar una formula que sume la columna G de la siguiente forma:

a.Range(«G» & uf + 1).Formula = «=sum(G2:G» & uf & «)»

Para determinar el promedio se usa la siguiente codificación de VBA, que calcula también sobre la columna G, pero en este caso el promedio de todos los datos:

a.Range(«G» & uf + 2).Formula = «=average(G2:G» & uf & «)»

En la columna H, más precisamente en la celda H3 inserta la formula de excel que permite calular el saldo de la columna G, se usa el siguiente código:

a.Range(«H3»).Formula = «=H2+G3»

Luego se copia en la columa H desde la celda H4 en adelante hasta la última fila con datos la formula creada en H3, siendo similar a copiar una formula arrastrándola con el mouse hacia abajo, el código que se una es:

a.Range(«H3»).AutoFill Destination:=Range(«H3:H» & uf), Type:=xlFormula

Como se observa para insertar formula con macro se utilizaa en la celda donde se requiere insertar la formula:
a.Range(«H3»).Formula = «=H2+G3»

La expresión que se encuentra detras de = es una cadena de texto que si se fijan es la formula tal cual se inserta en las celdas de excel en forma manual, es decir se debe reproducir tal cual se insertaría en forma manula

Código del ejemplo y descarga del excel gratis usado de ejemplo

Sub EliminaFila()
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
a.Range(«C14») = «Total»
a.Range(«C15») = «Promedio»
a.Range(«G» & uf + 1).Formula = «=sum(G2:G» & uf & «)»
a.Range(«G» & uf + 2).Formula = «=average(G2:G» & uf & «)»
a.Range(«H2») = a.Range(«G2»)
a.Range(«H3»).Formula = «=H2+G3»
a.Range(«H3»).AutoFill Destination:=Range(«H3:H» & uf), Type:=xlFormula
Application.ScreenUpdating = True
End Sub


Sub DeNuevo()
Set a = Sheets(«Hoja1»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
a.Range(«A1:H» & uf).Clear
Sheets(«Hoja2»).Range(«A:H»).Copy Destination:=a.Range(«A1»)
MsgBox («Se copio la base de datos nuevamente»), vbInformation, «AVISO»
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes