Macro insertar fila en cualquier parte de una tabla, o modificación de código

Tengo el siguiente código:

Sub insertarfila_Haga_clic_en()
Dim numFilas As Long
'Preguntar al usuario por el número de filas a insertar
numFilas = Application.InputBox(Prompt:="Filas a insertar:", Type:=1)
'Validar si el número de filas indicado es superior a cero
If numFilas > 0 Then
'Insertar filas
Rows(ActiveCell.Row & ":" & ActiveCell.Row + numFilas - 1).Insert
End If
End Sub

Pero cuando trato de agregar la fila en cualquier fila de la tabla me indica esto:

Error 1004 = "esto no no funcionara por que movería celdas de una tabla en la hoja de calculo"

Y yo si requiero poder seleccionar en que parte pueda agregar la fila.

1 respuesta

Respuesta
1

La instrucción esta incompleta

Rows(ActiveCell.Row & ":" & ActiveCell.Row + numFilas - 1).Insert

esta debe ser

Rows(ActiveCell.Row & ":" & ActiveCell.Row + numFilas - 1).entirerow.Insert

Muchas gracias James Bond, disculpa, adjunte el código erróneo, el correcto que tengo es este:

Sub test()

Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Numero de filas", "Información")
If xCount < 1 Then
MsgBox "Error, ingresar cantidad de filas correctamente", vbInformation, "Advertencia"
GoTo LableNumber
End If
ActiveCell.EntireRow.Copy
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(xCount, 0)).Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub

Trate de agregarle lo mismo que me dijiste en el mensaje anterior, pero me dio el mismo error.

Espero me puedas ayudar.

Gracias

Hay un detalle quizá tu EXCEL tenga alguna protección contra cambios en la hoja activada porque probé tu macro y sin modificarle nada hace lo que pides, en este caso fue con el 1518 el registro que inserto 10 veces

y con una modificación que hice a tu macro igual siguió funcionando.

Sub insertar_filas()
Dim xCount As Integer
LableNumber:
xCount = Application.InputBox("Numero de filas", "Información")
If xCount < 1 Then
MsgBox "Error, ingresar cantidad de filas correctamente", vbInformation, "Advertencia"
GoTo LableNumber
End If
With ActiveCell
    .EntireRow.Copy
    .Offset(1, 0).Resize(xCount).Insert Shift:=xlDown
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas