Guardar datos de Form en una hoja determinada

Tengo el siguiente código, que si bien guarda los datos, lo hace solamente cuando la hoja "REGISTRO" esta activa, o seleccionada.

¿Es posible que realice la misma función sin necesidad de que la hoja se encuentre activa?

Public Sub btn_guardar_Click()
Sheets("REGISTRO").Cells(2, 1).Select 
Selection.EntireRow.Insert
Sheets("REGISTRO").Cells(2, 1) = txtbox_pos
Sheets("REGISTRO").Cells(2, 2) = CDate(lbl_Fecha.Caption)
Sheets("REGISTRO").Cells(2, 3) = "IM" + txtbox_IM
Sheets("REGISTRO").Cells(2, 15) = txtbox_detalle
Sheets("REGISTRO").Cells(2, 4) = combo_Entrantes
Sheets("REGISTRO").Cells(2, 5) = txtbox_serieEntrante
Sheets("REGISTRO").Cells(2, 6) = combo_Salientes
Sheets("REGISTRO").Cells(2, 7) = txtbox_serieSaliente
Sheets("REGISTRO").Cells(2, 8) = combo_sim1Entrante
Sheets("REGISTRO").Cells(2, 9) = txtbox_serieSimEntrante
Sheets("REGISTRO").Cells(2, 10) = combo_sim1Saliente
Sheets("REGISTRO").Cells(2, 11) = txtbox_serieSim1Saliente
Sheets("REGISTRO").Cells(2, 12) = combo_sim2Entrante
Sheets("REGISTRO").Cells(2, 13) = txtbox_serieSim2Entrante
Sheets("REGISTRO").Cells(2, 14) = combo_sim2Saliente
Sheets("REGISTRO").Cells(2, 15) = txtbox_serieSim2Saliente
mandar_Correo
txtbox_pos.SetFocus
End Sub

1 Respuesta

Respuesta
1

H o l a:

Cambia el código por este:

Public Sub btn_guardar_Click()
    Set h = Sheets("REGISTRO")
    h.Cells(2, 1).EntireRow.Insert
    h.Cells(2, 1) = txtbox_pos
    h.Cells(2, 2) = CDate(lbl_Fecha.Caption)
    h.Cells(2, 3) = "IM" + txtbox_IM
    h.Cells(2, 15) = txtbox_detalle
    h.Cells(2, 4) = combo_Entrantes
    h.Cells(2, 5) = txtbox_serieEntrante
    h.Cells(2, 6) = combo_Salientes
    h.Cells(2, 7) = txtbox_serieSaliente
    h.Cells(2, 8) = combo_sim1Entrante
    h.Cells(2, 9) = txtbox_serieSimEntrante
    h.Cells(2, 10) = combo_sim1Saliente
    h.Cells(2, 11) = txtbox_serieSim1Saliente
    h.Cells(2, 12) = combo_sim2Entrante
    h.Cells(2, 13) = txtbox_serieSim2Entrante
    h.Cells(2, 14) = combo_sim2Saliente
    h.Cells(2, 15) = txtbox_serieSim2Saliente
    mandar_Correo
    txtbox_pos.SetFocus
End Sub

Estoy almacenando en el objeto h la hoja Sheets("REGISTRO"), de esa forma no tienes que escribir Sheets("REGISTRO") en todas las líneas.

No sé que tengas en la macro mandar_correo, pero deberás realizar algo similar, es decir, deberás hacer referencia a la hoja, sin utilizar select o selection. Si tienes problemas en la macro madar_correo, también tendrás que poner el código para revisarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas