Insertar mas de 1 fila con formulas
Ya 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.
- Asistencia Técnica: ¿Cuándo no es un Beneficio Empresarial? - noviembre 10, 2023
- Inflacion acumulada a Octubre cierra en 3.27% - noviembre 10, 2023
- Citibanamex predice Inflación a la Baja y PIB en Ascenso - noviembre 8, 2023