Como agregar registros desde un Userform

Buenas tardes:

Tengo el siguiente código en un UserForm pero no se como decirle que agregue registros abajo de los que se van ingresando.

Private Sub btn_enviar_Click()
'lo que se escribe en los textbox se envía a la celdas
Worksheets("hoja1").Range("a2") = TextBox1
Worksheets("hoja1").Range("b2") = TextBox2
Worksheets("hoja1").Range("C2") = ComboBox1
Worksheets("hoja1").Range("d2") = TextBox3
Worksheets("hoja1").Range("e2") = Label5
'Se limpian los textbox
TextBox1 = Empty
TextBox2 = Empty
ComboBox1 = Empty
TextBox3 = Empty
Label5 = Empty
'El cursor se pone pone en el primer textbox para iniciar nuevamente
TextBox1.SetFocus

Saludos.

1 Respuesta

Respuesta
1

Primero encontrá la primer fila libre y luego usá ese dato como fila:

libre = Worksheets("hoja1").Range("A65536").End(xlup).Row + 1

'lo que se escribe en los textbox se envía a la celdas

Worksheets("hoja1").Range("A" & libre) = TextBox1

<h6>y así con el resto de las líneas.</h6>

PD) En la sección Macros de mi sitio podes encontrar otras instrucciones para encontrar las filas libres o límites de rangos.

Hola Elsa:

Muchas gracias por el dato, lo haré y te informare si me ayudo, por otro lado quería preguntarte si es posible que de este libro se pueda enviar únicamente la hoja 1 y en el correó en la parte de asunto se escriba lo que se selecciona del combobox.

Saludos.

Si es posible.

Pero primero armá la macro con estos cambios y probala. Si te queda alguna duda me volvés a consultar y si todo está resuelto finalizá esta consulta y dejá el nuevo tema en otra entrada en el tablón. Desde allí te la responderé con mucho gusto.

Hola Elsa:

No me queda, no se si tendrás algún correo para enviarte el archivo y me digas con donde se debería colocar esta declaración, busque y encontré otra solución te dejo el código

Private Sub btn_enviar_Click()
For I = 1 To 1000
If Cells(I + 1, 1).Value = "" Then 'comienza a introducir datos
'lo que se escribe en los textbox se envía a la celdas
Worksheets("hoja1").Cells(I + 1, 1).Value = TextBox1
Worksheets("hoja1").Cells(I + 1, 2).Value = TextBox2
Worksheets("hoja1").Cells(I + 1, 3).Value = TextBox1
Worksheets("hoja1").Cells(I + 1, 4).Value = TextBox3
Worksheets("hoja1").Cells(I + 1, 5).Value = Label5
'Se limpian los textbox
TextBox1 = Empty
TextBox2 = Empty
ComboBox1 = Empty
TextBox3 = Empty
Label5 = Empty
'El cursor se pone pone el el textbox para iniciar nuevamente
TextBox1.SetFocus
'Se envía por correo
MsgBox "Escriba la cuenta del destinatario"
On Error GoTo Err
Application.Dialogs(xlDialogSendMail).Show arg1:="[email protected]", arg2:="Desviación"
Err:
Exit For
End If
Next
End Sub
Private Sub UserForm_Activate()
'Introduce la fecha
Label5.Caption = Date
End Sub

cuando lo meto si me agrega una fila pero al momento de cerrarlo y volverlo abrir ingreso otros datos pero me quita los que ya tenia, de que manera puedo hacerle para que no me borre los que ya tenia y se vayan acumulando, esto con el fin de posteriormente revisar que tantos registros se hicieron,.

saludos.

¿Dónde está la línea que te pasé? y QUÉ TIENE QUE HACER EL FOR AHÍ?

Tu consulta se trataba de que <em style="line-height: 1.5em;">agregue registros abajo ... entonces si te paso una línea <strong style="line-height: 1.5em;">explicando que es para encontrar la fila libre, y no sabes dónde colocarla podes solicitarme la aclaración y <strong style="line-height: 1.5em;">listo el tema.

Pero en cambio te pusiste con otro tema, además colocaste un código que encontraste por ahí... y encima no colocaste la única instrucción correcta... qué pérdida de tiempo.

Bien... así debe quedarte la rutina según CONSULTA ORIGINAL:

Private Sub btn_enviar_Click()
'lo que se escribe en los textbox se envía a la celdas

'encontrá la primer fila libre

libre = Worksheets("hoja1").Range("A65536").End(xlup).Row + 1
Worksheets("hoja1").Range("A" & libre) = TextBox1
Worksheets("hoja1").Range("B" & libre) = TextBox2
Worksheets("hoja1").Range("C" & libre) = ComboBox1
Worksheets("hoja1").Range("D" & libre) = TextBox3
Worksheets("hoja1").Range("E" & libre) = Label5
'Se limpian los textbox
TextBox1 = Empty
TextBox2 = Empty
ComboBox1 = Empty
TextBox3 = Empty
Label5 = Empty
'El cursor se pone pone en el primer textbox para iniciar nuevamente
TextBox1. SetFocus

'aquí se termina el pase... si a partir de aquí querés agregar lo del correo, ya es tema tuyo 'QUE CON MUCHO GUSTO TE LO EXPLICO EN OTRA CONSULTA(*)

END SUB

(*) solo podemos tratar 1 tema por consulta.

ok, ok, muchas gracias por la explicación,ya lo realice como me lo indicaste y funciono muy bien, muchas gracias por tú tiempo y tu ORIENTACIÓN, eres muy buena con esto, PREGUNTA, como puedo hacerle para que cuando mande el correo se cierre el archivo???

Saludos.

Lamento que insistas y me hagas insistir... no respondemos 2 temas diferentes en 1 misma consulta. Los títulos de los temas ayudan al buscador del foro y al resto de los usuarios que se guían por ellos para encontrar solución a sus consultas... así que x favor ... colaboremos entre todos a esto... así es como funciona el foro.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas