Bucle para copiar datos userform hasta valor de textbox

Y me gustaria que me ayudaran:

Tengo un userform con un combobox y 5 textbox (textbox5 = cantidad), lo que deseo es que, la macro me copie los datos del combobox y los textbox las veces que me diga el textbox5. Pero la macro no debe sobreescribir los datos copiados, sino hacerlo sucesivamente. Las columnas donde copiar deben ser del range("O:T").

2 respuestas

Respuesta
2

Prueba con esa macro

Private Sub CommandButton1_Click()
Set datos = Range("o1").CurrentRegion
CANTIDAD = TextBox5.Text
For J = 1 To CANTIDAD
With datos
    filas = .Rows.Count: col = .Columns.Count
    If filas = 1 And col = 1 Then
        Set datos = .Resize(1, 6)
    Else
        Set datos = .Rows(.Rows.Count + 1).Resize(1, 6)
    End If
    MATRIZ = datos
    X = 1
    For Each Control In UserForm1.Controls
        TIPO = UCase(TypeName(Control))
        If TIPO = "COMBOBOX" Then MATRIZ(1, 1) = Control.Value
        If TIPO = "TEXTBOX" Then MATRIZ(1, X) = Control.Text
    X = X + 1
    Next Control
    Range(.Address) = MATRIZ
End With
Next J
End Sub
Respuesta
1

Te anexo el código, cambia "Hoja1" por el nombre de tu hoja

Private Sub CommandButton1_Click()
'Copiar a la hoja
    Set h1 = Sheets("Hoja1")
    If TextBox5 = "" Or Not IsNumeric(TextBox5) Then
        MsgBox "Falta la cantidad"
        TextBox5.SetFocus
        Exit Sub
    End If
    '
    u = h1.Range("T" & Rows.Count).End(xlUp).Row + 1
    For i = 1 To TextBox5
        h1.Cells(u, "O") = ComboBox1
        h1.Cells(u, "P") = TextBox1
        h1.Cells(u, "Q") = TextBox2
        h1.Cells(u, "R") = TextBox3
        h1.Cells(u, "S") = TextBox4
        h1.Cells(u, "T") = TextBox5
        u = u + 1
    Next
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas