SUMAR.SI con varias hojas excel

Para @Dante Amor;

Buenas tardes, quiero hacer un excel para llevar el control de nóminas de la empresa. Cada hoja excel es un mes del año, y en cada mes cada fila es un trabajador. Me gustaría llevar un control sobre lo que pago a los trabajadores, y los datos que saca la base de datos, para ir comprobando mes a mes que los pagos están ajustados a los datos de la base de datos. Los datos que saca la base de datos, yo los mecanizo mensualmente en el excel.

Por otro lado, quiero tener un sumatorio anual, en una hoja excel aparte, a la que he nombrado Sumatorio 2017, donde aparezca en una columna el total pagado y en otra el total de la base de datos. Si todo ha ido bien, la diferencia entre ambos debe ser = 0.

En la columna de pagado, he aplicado tu macro de =GSUMA, y me ha salido perfecto, porque aunque haya diferentes trabajadores por mes, o se modifique su orden la macro me soluciona esos problemas.

Pero claro, yo quiero también hacer el sumatorio en la columna de los datos de la base de datos, y no puedo volver a utilizar la misma macro, puesto que ya excel se confunde.

Espero haberme explicado con claridad, de no ser así puedo elaborar un ejemplo y enviártelo.

1 Respuesta

Respuesta
1

H  o la:

Envíame tu archivo y me explicas con ejemplos, en dónde quieres la suma, qué quieres sumar y en esos ejemplos me pones el resultado esperado.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “VERONICA RRHH” y el título de esta pregunta.

H  o l a :

Te anexo una macro, cada que requieras actualizar el resumen, solamente tienes que presionar un botón.

Sub Actulizar_Sumas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = ActiveSheet
    i = 3
    Do While h1.Cells(i, "A") <> ""
        h1.Range(h1.Cells(i, "B"), h1.Cells(i, "D")).ClearContents
        trab = h1.Cells(i, "A")
        For Each h In Sheets
            If h.Name <> h1.Name Then
                Set b = h.Columns("A").Find(trab, lookat:=xlWhole)
                If Not b Is Nothing Then
                    h1.Cells(i, "B") = h1.Cells(i, "B") + h.Cells(b.Row, "D")
                    h1.Cells(i, "C") = h1.Cells(i, "C") + h.Cells(b.Row, "E")
                    h1.Cells(i, "D") = h1.Cells(i, "D") + h.Cells(b.Row, "F")
                End If
            End If
        Next
        i = i + 1
    Loop
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas