Macro para manejar operaciones matemáticas

Cuando se trabaja con excel para hacer operaciones se seleccionan las celdas y se especifica la operación, si quiero calcular lo de todas las filas solo arrastro la fórmula, hasta la fila deseada.

Quisiera poder pasar la fórmula de la imagen a una macro, lo que hace la fórmula es que las entradas en la columna A se restan con las salidas de la fila anterior de la columna B y
El resultado lo pone en la columna DE de una por una hasta llegar a la ultima fila con datos

¿Existe una manera de poder hacerlo a través de una macro?

Respuesta
2

Usa esta macro, llenara todo el rango que tengas con la fórmula

Sub formular()
Range("d3").Resize(Range("a1").CurrentRegion.Rows.Count - 2, 1).Formula = "=(a3-b2)*7"
End Sub

Me podrías explicar por favor, ¿a qué te refieres al decir que llenara todo el rango que tenga con la fórmula?.

Si tienes 5 filas la macro llenara esas 5 filas, si tienes 10 filas hará lo mismo e igual se es un millom es lo que se llama una macro dinámica

2 respuestas más de otros expertos

Respuesta
1

Vamos a ver si entendí

Quiere que una fórmula así (S - B) y lo pmultiplique por C y el resultado lo poga en D

Se in por más exp[ecifica con resultado

Pero no es una resta como de A3-B3 sino una como de  A3-B2*7, A4-B3*7, A5-B4*7, y asi sucesivamente hasta la ultima fila con datos. Por ejemplo el valor de la celda D3 el 98, es el resultado de ((A3-B2)*7 ) =D3 que seria ( (23-9=*7))=98

Seria algo así

For Each celda In Range("a2:a31")
If celda = "" Then Exit Sub
celda.Offset(0, 3) = (celda - celda.Offset(-1, 1)) * celda.Offset(0, 2)
Next
no olvides valora la pregunta 

Solo cambia el rango de celda en mi ejemplo pusew hasta la 31 tu sabrá hasta donde

Respuesta
1

Intenta así:

Sub operacion()
u = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To u
v1 = Cells(i + 1, 1)
v2 = Cells(i, 2)
Cells(i + 1, 4) = (v1 - v2) * 7
If ((v1 - v2) * 7) <= 0 Then
Cells(i + 1, 4) = ""
End If
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas