Macro para insertar filas y sumar valores

Tengo una tabla que contiene los adeudos con proveedores, los cuales están ordenados alfabéticamente. Necesito una macro que inserte una fila debajo del rango de cada proveedor y me sume las cantidades de ese tango.

¿Habrá alguna manera de hacerlo?

1 Respuesta

Respuesta
2

H o l a:

¿En cuál columna tienes el importe?

Ah, ¿en cuál columna tienes el nombre del proveedor y en cuál fila empiezan los datos?

Te anexo la macro. Cambia en la macro la "B" por tu columna de nombres, cambia la "E" por tu columna de importes, en estas líneas:

    c1 = "B"    'columna de nombres
    c2 = "E"    'columna de importes

La macro completa:

Sub InsertarTotales()
'Por.Dante Amor
    Application.ScreenUpdating = False
    c1 = "B"    'columna de nombres
    c2 = "E"    'columna de importes
    u = Range(c1 & Rows.Count).End(xlUp).Row
    fin = u
    ant = Cells(u, c1)
    tot = 0
    For i = u To 1 Step -1
        If Cells(i, c1) <> ant Then
            Rows(fin + 1 & ":" & fin + 2).Insert
            Cells(fin + 1, c2) = tot
            tot = 0
            fin = i
        End If
        tot = tot + Val(Cells(i, c2))
        ant = Cells(i, c1)
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5
    'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Hola Dante:

Los datos empiezan en la fila 13 y terminan en la 26.

La columna del proveedor es la I y los totales es la L.

Muchísimas gracias Dante! me funciona el código.

¿hay manera de hacerlo sólo para un rango de filas?

Cambia en esta línea la u y el primer 1

For i = u To 1 Step -1

Por ejemplo, si la última línea con datos es la 26 y tus datos empiezan en la 13, entonces quedaría así:

For i = 26 To 12 Step -1

(Efectivamente puse 12, en lugar de 13, se tiene que poner un número anterior)

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas