Saltar al contenido

Macro insertar filas en blanco y sumar por bloques

publicado

Buenas tardes a todos!

Que tal, en espera de su ayuda tengo el siguiente problema, ya tengo una macro que me hace un reporte por cada sucursal que se tiene en el pais, pero no logro separarlo por bloques y me inserte dos filas en blanco arriba despues de que encuentre un dato. y donde inserto la segunda linea me ponga el nombre ahi, y en toda esa fila me realize la sumatoria de los campos. Creo que con el ejemplo quedara mas claro en la hoja1 es como tengo mi dato, y en la hoja2 como deseo que quede, espero me puedan apoyar ya que es el ultimo dato que me hace falta para terminar.

Este codigo es correcto me inserta las 2 filas en blanco que necesito, ya logre que funcionara!!!

Sub OrdenarVendedor()

Dim lngRow As Long, intRow As Long

Application.ScreenUpdating = False

Range("A1").Select

Range("A1").CurrentRegion.Sort _

Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes

lngRow = Cells(Rows.Count, 1).End(xlUp).Row

For intRow = lngRow To 2 Step -1

If Cells(intRow, 1).Value <> Cells(intRow - 1, 1).Value Then _

Rows(intRow).Resize(2).Insert

Next intRow

Application.ScreenUpdating = True

End Sub

EJEMPLO1.rar

Featured Replies

publicado
  • Autor

Hola, perdonen mi insitencia, pero estoy desesperado, tengo 2 meses tratando de hechar a andar esta macro y nada que resulta, poco a poco eh ido mejorado el codigo pero solamente me hace falta esa parte, si alguien sabe como se puede hacer se los agradesco mucho.

Saludos cordiales

Gerardo Arevalo.

publicado
  • Autor

Lo unico que me hace falta es que me sume por bloques, es decir lo datos que estan dentro de las filas en blanco.. En mi ejmplo viene la forma en la que requiero hacer la suma, y tambien en cuanto encuentre un dato en la columna B subir una celda arriba este dato.

publicado

Una idea para lo que necesitas, asumiendo filas vacias entre grupos:

For Each aArea In ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants).Areas
Cells(aArea.Row + aArea.Rows.Count, 3).Value = WorksheetFunction.Sum(Range(Cells(aArea.Row, 3), Cells(aArea.Row + aArea.Rows.Count - 1, 3)))
Next aArea[/CODE]

Tu ejemplo continene celdas combinadas y bordes individuales, ambas cosas deben corregirse/eliminarse para facilitar la operacion

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.