Insertar una fila de datos con macros en fila determinada

Quisiera saber como puedo insertar una fila de datos con macros o sin ella, pero que inicie a insertar desde la "X" fila en excel, por ejemplo, tengo una tabla que llenar, las primeras filas (1,2,3 y 4) es para información básica, la tabla empezaría de la fila 5 con su encabezado, para luego ir registrando en la fila 6 en adelante. Quisiera mencionarles también que hasta abajo de la tablita tengo que realizar totales, por lo que la tabla estaría compuesta si mucho de 50 filas o menos (en este caso ocuparía desde la fila 6 hasta la 56 en excel) la fila 57 serían totales, y también no quisiera empezar de la columna A sino empezar de la columna C, como que indicándoles que la esquina superior izquierda donde iniciará mi información básica estará en la celda C1. Gracias por su colaboración... Estaré pendiente

1 respuesta

Respuesta

No comprendí en que fila necesitas insertar, como indicar que es fila "x".

Así que dejo las instrucciones, en este caso insertara a partir de fila 6:

Range("C6"). EntireRow. Inserta

Si declaras una variable, por ej:

X= 10

Range("C" & X).EntireRow.Insert

Sdos. Si el tema queda resuelto no olvides valorar la respuesta, sino aclara con un ejemplo.

Elsa

Gracias Elsa por tu ayuda, quisiera enviarte el libro con la macro pero esta plataforma no tiene como adjuntar, pero te envío un imagen gif para que puedas observar: (no sé si la plata forma leerá img gif de igual forma te envío el link lo subí al internet de todos modos)

 

Gracias por tu ayuda

Sub Agregar()
'Declaración de variables
'
Dim Titulo_Mensaje_MSGBOX As String
Dim Mensaje As String
Dim TransRowRng As Range
Dim NewRow As Integer
Dim Limpiar As String
Dim FilaInicio As Integer
'
'
Titulo_Mensaje_MSGBOX = "Formulario"
'
Mensaje = MsgBox("Guardar datos a la hoja asignada?", vbYesNo + vbExclamation, Titulo_Mensaje_MSGBOX)
If Mensaje = vbNo Then Exit Sub 'Si al cuadro mensaje le dan click en NO se cerrará el mensaje.
'
'Set TransRowRng = ThisWorkbook.Worksheets("Hoja3").Cells(1, 1).CurrentRegion
Set TransRowRng = ThisWorkbook.Worksheets("hoja3").Cells(1, 1).CurrentRegion
NewRow = TransRowRng.Rows.Count + 1
With ThisWorkbook.Worksheets("Hoja3")
    .Cells(NewRow, 2).Value = ThisWorkbook.Sheets(1).Range("C7")
    .Cells(NewRow, 3).Value = ThisWorkbook.Sheets(1).Range("J7")
    .Cells(NewRow, 4).Value = ThisWorkbook.Sheets(1).Range("K7")
    .Cells(NewRow, 5).Value = ThisWorkbook.Sheets(1).Range("C11")
    .Cells(NewRow, 6).Value = ThisWorkbook.Sheets(1).Range("H11")
    .Cells(NewRow, 7).Value = ThisWorkbook.Sheets(1).Range("C15")
    .Cells(NewRow, 8).Value = ThisWorkbook.Sheets(1).Range("J15")
 End With
'
MsgBox "Registro enviado a Hoja Asignada", vbInformation, Titulo_Mensaje_MSGBOX
Limpiar = MsgBox("Deseas limpiar los campos", vbYesNo, Titulo_Mensaje_MSGBOX)
If Limpiar = vbYes Then
    With ActiveWorkbook.Sheets(1)
        .Range("C7") = Clear
        .Range("J7") = Clear
        .Range("K7") = Clear
        .Range("C11") = Clear
        .Range("H11") = Clear
        .Range("C15") = Clear
        .Range("J15") = Clear
        '.Range("I15").ClearContents -> Esta es otra forma de limpiar pero...
        'ClearContents no funciona en celda combinada...
        '.Range("F15").Value = "" -> Puede ser otra forma de actuar contra celdas combinadas.
    End With
Else
End If
'
End Sub

Disculpa no ví la opción de subir código, este es el código de la macro que estoy utilizando según entiendo la macro hace un conteo de las filas no vacia es por eso creo yo, que la filas se inserta arriba del encabezado.... Gracias de nuevo

Disculpa la demora pero estoy atravesando un problema ocular que me impide trabajar. Puedes finalizar o no esta consulta, pero deja una nueva en el tablo para que otros te asistan así no pierdes tanto tiempo.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas