Como hacer que un registro se inserte n veces a una hoja mediante formulario en excel 2007 con macro

TENGO un formulario que inserta un registro mediante un botón asignándole un numero correlativo.
Este es el código que utilizo, pero necesito que este registro se ingrese n veces yo le indique:
Private Sub CommandButton1_Click()
Sheets("Registro").Select
Dim x As Integer
Aplication.Goto reference = "R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset.Range("A1").Select
x = ActiveCell.Value
x = x + 1
ActiveCell.Offset(1, 0).Range("A1").Value = x 'inserto código sera correlativo
ActiveCell.Offset(1, 1) = txtnombre.Text 'ingreso nombre ingresado por usuario
ActiveCell.Offset(1, 2) = txtnombre.Text 'ingreso segundo dato
Aplication.Goto reference = "R1C1"
Aplication.CutCopyMode = False
ActiveWorkbook.Save
End Sub
Que tendría que modificar para que se ingrese los mismos datos varias veces sin variar el correlativo(el nro de veces lo obtengo contando lo que pego de otra hoja)
Muchas gracias por la información que me puedas dar para solucionar mi caso.

1 respuesta

Respuesta
1

Una idea:

Private Sub CommandButton1_Click()
Sheets("Registro").Select
Dim x As Integer
Application.Goto reference = "R1C1"
Selection.End(xlDown).Select
ActiveCell.Offset.Range("A1").Select
x = ActiveCell.Value
x = x + 1
For i = 0 To n ' numero dado por usuario para repetir el registro
fila = Application.WorksheetFunction.CountA("A:A") + 1 ' cuentas la filas llenas del rango y aumenta en 1 para el sgte registro
Range("A" & fila) = x 'inserto código sera correlativo
Range("A" & fila).Offset(0, 1) = txtnombre.Text 'ingreso nombre ingresado por usuario
Range("A" & fila).Offset(0, 2) = txtnombre.Text 'ingreso segundo dato
Next
Application.Goto reference = "R1C1"
Application.CutCopyMode = False
ActiveWorkbook.Save
End Sub

Gracias por tu respuesta, cuando ingreso el primer registro se supone que solo están las cabeceras y si le digo que cuenta las filas llenas y le aumenta en 1(se puede aumentar en 1 si encuentra la celda vacía?) como haría eso.

gracias

fila = Application.WorksheetFunction.CountA("A:A") + 1 ' cuentas la filas llenas del rango y aumenta en 1 para el sgte registro

Esta linea cuenta el total de elementos de la col A, si solo tienes las cabeceras seria 1 y como alfinal le añades 1, pues el registro va a la fila 2, en la sgte pasada del bucle... vuelve a contar cuantos hay en A, ahora contara la cabecera mas el registro anteriormente añadido y le sumara 1, y asi el nuevo registro va a la fila 3..

gracias de nuevo,disculpa si te hago otra pregunta mas ,quisiera saber si se puede...bueno tengo ciertas columnas de un libro las cuales quiero que se bloqueen para que no puedan hacer cambios pero hay una columna que si quiero que se haga cambios pero solo mediante la ventana del inputbox(mas no debe ser modificada directamente en la celda).crees que se pueda.

muchas gracias de antemano que me puedas dar.

saludos:)

Primero cierra la pregunta original y luego vemos lo otro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas