Macro totalizar columnas por código

Para Dante Amor

Se tiene un archivo llamado x.xlsx en hoja1:

           A                             E                      G                   I                   K

Código                    Total1             Total2               Total3            Total4

2       20                             50                    60           10                     20

3      10                               20                   10           30                     40

4      30                              10                     10          50                     60

5      10                               5                       5           50                     20

6       20                              40                   10          10                      20

7 ........... Hasta el último registro en A

Se requiere macro que totalice en la hoja "resumen" en el mismo archivo x.xlsx quedando así:

       A                                       E                 G                   I                      K                                      Y

Código                               Total1           Total2          Total3            Total4        ......             GRAN TOTAL

        10                                       25                15                 80                    60       ......              180

        20                                       90                70                 20                      40     ......               220

         30                                       10              10                  50                      60     .......               130

Asi sucesivamente hasta el último registro en A

GRAN TOTAL                        125                   95                150                  160                         530 

2 Respuestas

Respuesta
2

Te anexo la macro

Sub Totalizar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Resumen")
    '
    h2.Rows("2:" & Rows.Count).ClearContents
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        cod = h1.Cells(i, "A").Value
        Set b = h2.Columns("A").Find(cod, lookat:=xlWhole)
        If Not b Is Nothing Then
            fila = b.Row
        Else
            fila = j
            h2.Cells(fila, "A") = cod
            j = j + 1
        End If
        h2.Cells(fila, "E") = h2.Cells(fila, "E") + h1.Cells(i, "E")
        h2.Cells(fila, "G") = h2.Cells(fila, "G") + h1.Cells(i, "G")
        h2.Cells(fila, "I") = h2.Cells(fila, "I") + h1.Cells(i, "I")
        h2.Cells(fila, "K") = h2.Cells(fila, "K") + h1.Cells(i, "K")
        h2.Cells(fila, "Y") = h2.Cells(fila, "E") + h2.Cells(fila, "G") + _
                              h2.Cells(fila, "I") + h2.Cells(fila, "K")
    Next
    h2.Cells(j, "A") = "GRAN TOTAL"
    h2.Cells(j, "E") = WorksheetFunction.Sum(h2.Range("E2:E" & j - 1))
    h2.Cells(j, "G") = WorksheetFunction.Sum(h2.Range("G2:G" & j - 1))
    h2.Cells(j, "I") = WorksheetFunction.Sum(h2.Range("I2:I" & j - 1))
    h2.Cells(j, "K") = WorksheetFunction.Sum(h2.Range("K2:K" & j - 1))
    h2.Cells(j, "Y") = WorksheetFunction.Sum(h2.Range("Y2:Y" & j - 1))
    MsgBox "Fin"
End Sub

.

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

.

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas