Macro que inserte filas automáticamente y permita sumar total

A los miembro del Foro, en esta ocasión necesito su ayuda en una macro que tengo la cual me permite inserta filas automáticamente a presionar en el botón INSERTAR FILAS, pero a la vez tengo una la fórmula en el texto donde indica TOTAL GENERAL "=SUMA(L8:L9)" y lo que necesito es que si inserto 5 más 2 que tengo por defecto mi fórmula suma debería incrementar a =SUMA(L8:L14), pero no permite hacer este cambio.

Adjunto Macro

Sub Insertar_filas()

 Dim vRows As Integer

 Application.ScreenUpdating = False

    Cells(Rows.Count, "AQ").End(xlUp).Select

    ActiveCell.EntireRow.Select

    If Application.WorksheetFunction.CountIf(ActiveCell.EntireRow, "<>") = 0 Then Exit Sub

    If vRows <> 1 Then

    vRows = Application.InputBox(prompt:= _

    "Introduce el nº de filas a insertar", Title:="Insertar Filas", _

    Default:="", Type:=1)

    If vRows = False Then GoTo Salir

    End If

Dim sht As Worksheet, shts() As String, i As Integer

    ReDim shts(1 To Worksheets.Application.ActiveWorkbook. _

    Windows(1).SelectedSheets.Count)

    i = 0

    For Each sht In _

    Application.ActiveWorkbook.Windows(1).SelectedSheets

    Sheets(sht.Name).Select

    i = i + 1

    shts(i) = sht.Name

    Selection.Resize(rowsize:=2).Rows(2).EntireRow. _

    Resize(rowsize:=vRows).Insert Shift:=xlDown

    Selection.AutoFill Selection.Resize( _

    rowsize:=vRows + 1), xlFillDefault

    On Error Resume Next

    Selection.Offset(1).Resize(vRows).EntireRow. _

    SpecialCells(xlConstants).ClearContents

    Next sht

    Worksheets(shts).Select

    Application.ScreenUpdating = True

Salir:

End Sub

1 respuesta

Respuesta
1

H o l a:

Tengo duda en cuál fila tienes la fórmula.

Ya que tu macro toma la última fila de la columna AQ, pero mencionas que tienes la fórmula en la columna "L".

Suponiendo que tienes en AQ hasta la fila 14 y que la fórmula la tienes en L15, entonces utiliza la siguiente macro.

Sub Insertar_filas()
'Por.Dante Amor
    f = Cells(Rows.Count, "AQ").End(xlUp).Row
    If Application.WorksheetFunction.CountIf(Rows(f).EntireRow, "<>") = 0 Then Exit Sub
    vRows = Application.InputBox(prompt:= _
        "Introduce el nº de filas a insertar", Title:="Insertar Filas", Default:="", Type:=1)
    If vRows = False Then Exit Sub
    For Each h In Application.ActiveWorkbook.Windows(1).SelectedSheets
        h.Rows(f + 1 & ":" & f + vRows).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        h.Cells(f + vRows + 1, "L") = "=SUM(L8:L" & f + vRows & ")"
    Next
End Sub

Mi otra duda es, insertar la fila es para varias hojas, o solamente para la hoja que tienes activa. Si solamente es para una hoja, entonces podría ser así:

Sub Insertar_filas2()
'Por.Dante Amor
    f = Cells(Rows.Count, "AQ").End(xlUp).Row
    vRows = Application.InputBox("Introduce el nº de filas a insertar", "Insertar Filas")
    If vRows = False Then Exit Sub
    Rows(f + 1 & ":" & f + vRows).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Cells(f + vRows + 1, "L") = "=SUM(L8:L" & f + vRows & ")"
End Sub

Buenos días Dante Amor, la macro que me enviaste esta correcto y me permite insertas las filas como la fórmula de Total General, tú crees que me podrías facilitar un email, para enviarte el archivo original y puedas evaluar lo que en si necesito. Gracias.

H o l a:

Con gusto te sigo ayudando, crea una nueva pregunta por cada petición, en el desarrollo de la pregunta escribe que va dirigida a Dante Amor y me explicas con detalle lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas