Insertar una fila debajo cuando sea diferente y sumar columna

Solo me falta esto para finalizar mi macro..

Si alguien me echa una mano..

Resulta que en la hoja 2 a partir de la fila 8 en la columna A tengo códigos que se repiten estos están ordenados . Si al recorrer encuentra un código diferente ahí agregue una fila en blanco abajo. Luego sigue recorriendo y lo mismo si hay un código diferente inserte una fila abajo, luego en esa fila sumar la columna F que es ahí donde tengo los valores..

Ejemplo

Columna A fila 8 Columna F fila 8

Codigos Valores

Cdeq-22 20

Cdeq-22 1

Cdeq-22 5

Aquí inserte una fila en blanco 'aquí es la suma = 26

Gtres-22 65

Aquí inserte una fila en blanco 'aquí es la suma = 65

Etc. Hasta el ultimo código de la columna A.. Luego en la ultima celda haga la suma total suma total..

Agrego una imagen .. Por favor si alguien me ayuda

2 respuestas

Respuesta
1

No se ven los encabezados de filas/col. 

Mencionas: Columna A fila 8 Columna F fila 8

Entonces si Patente = col A... en col F está el campo Conductor... por lo que falta una mejor imagen para desarrollarte la macro.

O puedes enviarme tu hoja a alguno de mis correos que aparecen en portada de mi sitio:

Respuesta
1

Este es el resultado de la macro

y esta es la macro

Sub insertarysumar()
Set DATOS = Range("a1").CurrentRegion
With DATOS
    FILAS = .Rows.Count
    COL = .Columns.Count
    Set DATOS = .Rows(3).Resize(FILAS - 2, COL)
    DATOS.Select
    Set TABLA = .Columns(COL + 3).Resize(FILAS - 2, 1)
End With
With TABLA
    .Value = DATOS.Columns(1).Value
    .RemoveDuplicates Columns:=1
    MATRIZ = TABLA
    For i = 1 To .CurrentRegion.Rows.Count
        CODIGO = MATRIZ(i, 1)
        suma = WorksheetFunction.SumIf(DATOS.Columns(1), CODIGO, DATOS.Columns(4))
        cuenta = WorksheetFunction.CountIf(DATOS.Columns(1), CODIGO)
        indice = WorksheetFunction.Match(CODIGO, DATOS.Columns(1), 0)
        With DATOS.Rows(indice).Resize(cuenta, 1)
            .Cells(cuenta + 1, 1).EntireRow.Insert
            .Cells(cuenta + 1, 4) = suma
            .Cells(cuenta + 1, 9) = suma
            With .Cells(cuenta + 1, 1).Resize(1, COL + 1)
                .Font.Bold = True
                .Font.ColorIndex = 2
                .Interior.ColorIndex = 1
            End With
        End With
    Next i
    .EntireColumn.AutoFit
    .Clear
End With
Erase MATRIZ
Set TABLA = Nothing: Set DATOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas