Simplificar código de macros en excel

Todo expertos

Tengo una hoja organizada así:

  C                                D                            E                                                                           N

T.MOVI.                 ENERO               FEBRERO ...............................................DICIEMBRE

INGRESO               13                    12333                                                                    5678

IGRESO                  12                         123                                                                     5679

T. ING.                    13                    12333                                                                    5678

Y con la siguiente macro sumo   valores con  criterio  de "INGRESO"  

Sub ENERO()
'Por Marcelo Pandera
Dim uf As String
uf = Sheets("Hoja1").Range("C" & Rows.Count).End(xlUp).Row
Cells(uf + 1, "C") = Application.WorksheetFunction.SumIf(Range("B2" & ":B" & uf + 1), "INGRESO", Range("C2" & ":C" & uf + 1))
End Sub

El problema radica en que repito 12 veces la misma macro ANTERIOR para poder sumar las demás columnas de FEBRERO ... DICIEMBRE, sólo cambio el nombre de las columnas del rango de suma. Por ejemplo para FEBRERO hago así:

Sub FEBRERO()
Dim uf As String
uf = Sheets("Hoja1").Range("D" & Rows.Count).End(xlUp).Row
Cells(uf + 1, "D") = Application.WorksheetFunction.SumIf(Range("B2" & ":B" & uf + 1), "INGRESO", Range("D2" & ":D" & uf + 1))
End Sub

Y así para todos los meses.. Solo cambio el nombre de las columnas resaltadas en negrita.

¿Se podrá simplificara esta en una sola macro?

1 Respuesta

Respuesta
3

H o l a:

Te anexo la macro para todos los meses

Sub TodosLosMeses()
'Por.Dante Amor
    u = Sheets("Hoja1").Range("B" & Rows.Count).End(xlUp).Row
    With Range("C" & u & ":N" & u)
        .Formula = "=SUMIF(R2C2:R" & u - 1 & "C2,""INGRESO"",R2C:R[-1]C)"
        .Value = .Value
    End With
End Sub

':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas