Aplicación de sumar.si en celda que contenga un dato especifico

Recientemente aprendí a usar la fórmula sumar. Si en VISUAL, lo que requiere de su ayuda es lo sig.

Para empezar tengo una tabla con diferente datos el chiste es adaptar este código a lo que requiero:

Sub listaUnicos()
'Worksheets.Add.Name = "Reporte"
'x Elsamatilde
'copia lista de col C de hoja principal a partir de fila 2 - AJUSTAR
    Sheets("HOJA DE SUELDOS").Range("C3:C" & Range("C" & Rows.Count).End(xlUp).Row).Copy
'pega en Hoja1 a partir de A3 - AJUSTAR
    Sheets("Reporte").Select
    Range("A3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
'quita duplicados en rango copiado
    ActiveSheet.Range("$A$3:$A$" & Range("A" & Rows.Count).End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

que lo que hace es de toda la lista únicamente en la col C me copia y pega en otra hoja quitando los duplicados.  ahora quisiera adaptarle esto:

Range("AB7") = WorksheetFunction.SumIf(Range("C:C"), Range("AB2").Value, Range("Z:Z"))

al pegar los datos únicos en la hoja "reporte" entonces quisiera que me sume ahora las cantidades que hay por cada dato que de la col A buscando respetando: 

 celda aun lado de dato unico = WorksheetFunction.SumIf(Range("C:C"), "aqui requiero que busque el valor depedendiendo del dato unico, Range("Z:Z"))

aqui una imagen de la tabla:

Al ejecutar la primera macro debe hacer esto y con su ayuda poder aplicar el segundo código a cada dato único poniendo el resultado a un lado del dato osea en la col B

Algo así:

1 Respuesta

Respuesta
2

Te anexo la macro

Sub SumarSueldos()
'Por.Dante Amor
    Set h1 = Sheets("HOJA DE SUELDOS")
    Set h2 = Sheets("Reporte")
    u1 = h1.Range("C" & Rows.Count).End(xlUp).Row
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u2 < 3 Then u2 = 3
    h2.Range("A3:B" & u2).ClearContents
    '
    h1.Range("C3:C" & u1).Copy h2.Range("A3")
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    h2.Range("A3:A" & u2).RemoveDuplicates Columns:=1, Header:=xlNo
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    With h2.Range("B3:B" & u2)
        .Value = "=SUMIF('" & h1.Name & "'!R3C[1]:R" & u1 & "C[1],RC[-1],'" & h1.Name & "'!R3C[24]:R" & u1 & "C[24])"
        .Value = .Value
    End With
    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