Macro para copia de datos una "N" cantidad de veces según dato en textbox

Estoy tratando de generar una macro que coloque una "x" cantidad de datos capturados desde una serie de textbox. El código que tengo es el siguiente:

Sub CommandButton1_Click()
Sheets("Aperturas").Activate
Dim fila As Long
'Colocar cantida de fases
Dim REPETIR As Integer
REPETIR = UserForm2.TextBox8.Value
For Q = 1 To REPETIR
'Obtener la fila disponible
fila = Application.WorksheetFunction.CountA(Range("a:a")) + 4
    'Insertar datos capturados
    Cells(fila, 1).Value = UserForm2.TextBox2.Value
    Cells(fila, 2).Value = UserForm2.TextBox1.Value
    Cells(fila, 5).Value = UserForm2.TextBox3.Value
    Cells(fila, 6).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 6).Value = UserForm2.TextBox4.Value
    Cells(fila, 7).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 7).Value = UserForm2.TextBox5.Value
    Cells(fila, 8).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 8).Value = UserForm2.TextBox6.Value
    Cells(fila, 9).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 9).Value = UserForm2.TextBox7.Value
    'Limpiar cajas de texto
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox8.Value = ""
Next Q
    'Notificar al usuario
    MsgBox " Datos insertados en la fila " & fila
    ActiveWorkbook.Save
End Sub

Mi problema se genera en que no puedo lograr que los datos capturados se repitan en la cantidad de veces que indique el textbox8. Ademas estoy necesitando hacer que la cantidad de veces que indique sean numeradas al colocarlas como Fase 1 y en la siguiente fila Fase 2 y asi respectivamente.

Soy bastante nuevo en esto de la programación cualquier ayuda que puedan darme sera muy apreciada

1 respuesta

Respuesta
1

[Hola 

te paso la macro actualizada 

Private Sub CommandButton1_Click()
Sheets("Aperturas").Activate
'
REPETIR = Val(TextBox8.Value)
fila = Sheets("Aperturas").Range("A" & Rows.Count).End(xlUp).Row + 1
For Q = 1 To REPETIR
'Obtener la fila disponible
    'Insertar datos capturados
    Cells(fila, 1).Value = UserForm2.TextBox2.Value
    Cells(fila, 2).Value = UserForm2.TextBox1.Value
    Cells(fila, 5).Value = UserForm2.TextBox3.Value
    Cells(fila, 6).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 6).Value = UserForm2.TextBox4.Value
    Cells(fila, 7).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 7).Value = UserForm2.TextBox5.Value
    Cells(fila, 9).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 9).Value = UserForm2.TextBox7.Value
    fila = fila + 1
Next Q
'Limpiar cajas de texto
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox8.Value = ""
    'Notificar al usuario
    MsgBox " Datos insertados en la fila " & fila
    ActiveWorkbook.Save
End Sub

valora para finalizar Excelente o bueno saludos!

Gracias ahora coloca sin problemas la cantidad de veces.

La consulta ahora es si seria posible que en la columna 3 coloque la cantidad de fases que indica el textbox8, modificando la fase en cada fila siendo así en la primera fila que inserta fase1 la siguiente fase 2 y así n veces hasta que el bucle termine.

Saludos

Te paso la macro actualizada

Private Sub CommandButton1_Click()
Sheets("Aperturas").Activate
'
REPETIR = Val(TextBox8.Value)
fila = Sheets("Aperturas").Range("A" & Rows.Count).End(xlUp).Row + 1
n = 1
For Q = 1 To REPETIR
'Obtener la fila disponible
    'Insertar datos capturados
    Cells(fila, 1).Value = UserForm2.TextBox2.Value
    Cells(fila, 2).Value = UserForm2.TextBox1.Value
    Cells(fila, 3) = n
    Cells(fila, 5).Value = UserForm2.TextBox3.Value
    Cells(fila, 6).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 6).Value = UserForm2.TextBox4.Value
    Cells(fila, 7).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 7).Value = UserForm2.TextBox5.Value
    Cells(fila, 9).NumberFormat = "mm/dd/yyyy"
    Cells(fila, 9).Value = UserForm2.TextBox7.Value
    fila = fila + 1
    n = n + 1
Next Q
'Limpiar cajas de texto
    UserForm2.TextBox1.Value = ""
    UserForm2.TextBox2.Value = ""
    UserForm2.TextBox3.Value = ""
    UserForm2.TextBox4.Value = ""
    UserForm2.TextBox5.Value = ""
    UserForm2.TextBox6.Value = ""
    UserForm2.TextBox7.Value = ""
    UserForm2.TextBox8.Value = ""
    'Notificar al usuario
    MsgBox " Datos insertados en la fila " & fila
    ActiveWorkbook.Save
End Sub

valora para finalizar Excelente o bueno saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas