Insertar más de 1 fila con formulasYa comente en articulos anteriores como insertar varias filas en Excel y tambien les explique como insertar mas de 1 columna o fila en Excel … ¿recuerdan?

El día de hoy vamos a revisar una macro que nos permitirá también insertar mas de 1 fila, con la diferencia de que esta nueva macro además de insertar las celdas nos copiara (en caso de que existan) las fórmulas contenidas en dichas filas.

Es decir, si en la hoja donde queremos insertar las filas, contiene además celdas formuladas, esta macro nos permitirá que las filas que insertemos ya vengan formuladas también.

Como siempre he comentado, es aconsejable guardar sus macros favoritas dentro del libro PERSONAL.XLS (o PERSONAL.XLSB si es que utilizan Office 2007).

 Ahora bien, lo único que tienen que definir en el código de la macro es indicarle la columna en la que se encuentra ubicada la primer celda formulada, ubiquen las siguientes lineas de código y cambien el dato marcado en rojo.

Cells(Rows.Count, "B").End(xlUp).Select
'Se agrega esta linea para ir al último dato de la columna B

Aqui les dejo el codigo VBA que deben copiar dentro del editor de Visual Basic, recuerden que para acceder al editor pueden hacerlo presionando al mismo tiempo las teclas Alt + F11 o bien, mediante el menú Herramientas opcion Macros y seleccionan la opcion Editor de Visual Basic.

Insertar más de 1 fila con fórmulas

‘ Inicia Macro para Insertar Filas con fórmulas en la celda seleccionada ‘

Dim vRows As Integer 
Sub Agrega_fila_Y_llena_Formulas() 
    Application.ScreenUpdating = False 
   Cells(Rows.Count, "B").End(xlUp).Select 'Se agrega esta linea para ir al último dato de la columna B
    ActiveCell.EntireRow.Select 
    If Application.WorksheetFunction.CountIf(ActiveCell.EntireRow, "<>") = 0 Then Exit Sub 
   If vRows <> 1 Then 
    vRows = Application.InputBox(prompt:= _ 
      "Cuantas filas quiere añadir?", Title:="Agregar 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

Cualquier duda respecto del codigo de la macro o como aplicarlo en su libro de excel dejen sus comentarios.

José de Jesús Pérez Lara
Sígueme

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *