¿Cómo restar valores con macros?

Tengo unos datos en una hoja1, en una hoja2 tengo esos datos consolidados(en la hoja2 lo primordial es el nombre y la sumatoria de valores de la hoja1)

Si elimino, por ejemplo la fila 6 en la hoja1, como hago para que el valor que consta en esta fila (D6 = 14) se reste del consolidado de la hoja 2 y quede como el ejemplo que expongo.

2 Respuestas

Respuesta
1

Prueba esta macro, la cual copia los datos de la hoja1 a la hoja2, elimina los nombre duplicados, suma los nombres que sean iguales en la la hoja1 y te saca un gran total ta como lo muestras en tus imágenes

Sub RESUMIR_DATOS()
Set H1 = Worksheets("HOJA1")
Set H2 = Worksheets("HOJA2")
Set DATOS = H1.Range("A1").CurrentRegion
With DATOS
    FILAS = .Rows.Count:    COL = .Columns.Count
    Set DATOS = .Rows(2).Resize(FILAS - 1)
End With
Set RESULTADO = H2.Range("A2").Resize(FILAS - 1, 2)
With RESULTADO
    .Columns(1).Value = DATOS.Columns(1).Value
    .RemoveDuplicates Columns:=1
    Set RESULTADO = .CurrentRegion
    FILAS2 = .Rows.Count
    For I = 1 To FILAS2
        NOMBRE = .Cells(I, 1)
        .Cells(I, 2) = WorksheetFunction.SumIf(DATOS.Columns(1), NOMBRE, DATOS.Columns(COL))
    Next I
    .Cells(FILAS2 + 1, 2) = WorksheetFunction.Sum(.Columns(2))
End With
Set DATOS = Nothing: Set RESULTADO = Nothing
Set H1 = Nothing: Set H2 = Nothing
End Sub

Saludos, no es lo que necesito pero de igual también estaba buscando hacer algo similar y si me sirvió de mucho, la verdad me falto explicarme: tengo unos datos en la hoja1, estos datos los consolido en la hoja2, (hasta aquí la macros qudada super),., pero si borro o elimino un valor de la hoja1, deseo que los datos consolidados en la hoja2 también se actualicen, además de conservar otras columnas,., por ejemplo.

Código folio       nombre     fecha    valor

222          xx          Juan       0000      10

222          xx          Juan       0000        5

111         yy            Carlos    0000       10

111         yy            Carlos    0000       10

                                                                35    Total

La hoja2 consolidada quedaria asi, se consolida los valores conservando las columnas codigo, folio, nombre, en valor se suman

codigo    folio    nombre     valor

222          xx        Juan           15

111          yy         Carlos         20

                                                   35     Total 

Hasta aqui como primer paso en la hoja2  quiero conservar los datos  codigo, folio y nombre,  la columna valor es la que se va a modificar segun quite o agregue valores,.,  ahora supongamos que borro o elimino la segunda fila la hoja1 que tiene como valor 5, este valor quisiera que tambien se reste de la hoja 2, entonces eliminando esa fila quedaria asi, la hoja1:

codigo    folio    nombre     fecha  valor

222          xx          Juan       0000      10

111         yy            Carlos    0000       10

111         yy            Carlos    0000       10

                                                               30 Total

Y la hoja2 debería actualizarse, restando el valor de 5 en la columna que corresponde a juan

Código folio nombre  valor

222         xx     Juan         10

111          yy    Carlos       20

                                           30     Total ,.,

Ahora lo contrario, quiero sumar añadiendo o insertando una columna: en el ejemplo  le aumento la ultima fila con Juan y valor 20.

Código folio      nombre    fecha    valor

222          xx          Juan       0000      10

222          xx          Juan       0000        5

111         yy            Carlos    0000       10

111         yy            Carlos    0000       10

222          xx            Juan      0000       20   

                                                           55 Total (en esta hoja 1 lo que cambiaría es la sumatoria de valores)

En la hoja2 solo se actualizaría el valor de Juan .

Código folio      nombre   valor

222          xx          Juan      35

111           yy         Carlos     20

                                               55 Total

Gracias por su ayuda

Es la misma macro lo unico diferente es que ahora se activa a traves del eveto de hoja change, cada vez que insertes o borres una linea esta en automatico se reflejara en la hoja2

Private Sub Worksheet_Change(ByVal Target As Range)
Set h1 = Worksheets("HOJA1")
Set h2 = Worksheets("HOJA2")
Set DATOS = h1.Range("A1").CurrentRegion
With DATOS
    FILAS = .Rows.Count:    col = .Columns.Count
    Set DATOS = .Rows(2).Resize(FILAS - 1)
End With
Set RESULTADO = h2.Range("A2").Resize(FILAS - 1, col)
With RESULTADO
    .Value = DATOS.Value
    .RemoveDuplicates Columns:=Array(1, 3)
    Set RESULTADO = .CurrentRegion
    FILAS2 = .Rows.Count
    For I = 1 To FILAS2
        NOMBRE = .Cells(I, 3)
        .Cells(I, 5) = WorksheetFunction.SumIf(DATOS.Columns(3), NOMBRE, DATOS.Columns(col))
    Next I
    .Cells(FILAS2 + 1, 5) = WorksheetFunction.Sum(.Columns(5))
End With
h2.Range("a1:e1").Value = h1.Range("a1:e1").Value
Set DATOS = Nothing: Set RESULTADO = Nothing
Set h1 = Nothing: Set h2 = Nothing
End Sub

Olvide mencionar que en la hoja 1 no pude haber totales ya que estos se incluirían en la hoja 2

Respuesta

De acuerdo a sus datos que muestra, puede hacerlo con fórmulas, en este link

https://drive.google.com/open?id=1dCOI2dVgHDKi8xCoD16iiMiw2PDXCZ32 

Puede descargar un archivo, a manera que si elimina registros de la hoja1 en la hoja2 (concentrado) se actualizan los valores.

Saludos, la fórmula esta super, si quito o agrego valores esta ok, aunque la verdad me falto explicarme: tengo unos datos en la hoja1, estos datos los consolido en la hoja2, conservando varias columnas,,

Código folio nombre fecha valor

222          xx     Juan    0000  10

222          xx     Juan      0000    5

111           yy     Carlos  0000  10

111            yy    Carlos   0000 10

                                                   35 Total

La hoja2 consolidada quedaria conservando las columnas codigo, folio, nombre, y  la columna  valor se sumaria:

La hoja 2 quedaría así:

Código folio nombre valor

222          xx      Juan      15

111          yy         Carlos         20

                                                   35     Total 

Gracias por su valiosa ayuda

Si puede enviarme su archivo a [email protected] y comentando lo que necesita, con gusto le ayudo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas