Macro para que en el Useform me seleccione en que hoja queda guardada la información del Formulario

Muy Buenos Días, he creado una base de datos y le he colocado un botón de " ingresar " en cada una de las hojas ( lo que genera una inserción de fila, y llama a un formulario), el problema es que no se como dar la opción de que el formulario escoja la hoja donde lo debe guardar o lo otro que intente es hacer un formulario parecido en módulos distintos con useform diferentes pero no me lo genera, les agradecería la ayuda

esta es la programación del que me sirve

Private Sub Ingreso_Click()
Worksheets("Derechos de Petición").Range("A4").Value = Me.TextBox1.Value
Worksheets("Derechos de Petición").Range("C4").Value = Me.TextBox2.Value
Worksheets("Derechos de Petición").Range("E4").Value = Me.TextBox3.Value
Worksheets("Derechos de Petición").Range("I4").Value = Me.TextBox4.Value
Worksheets("Derechos de Petición").Range("D4").Value = Me.TextBox5.Value
Worksheets("Derechos de Petición").Range("J4").Value = Me.TextBox6.Value
Worksheets("Derechos de Petición").Range("F4").Value = Me.TextBox7.Value
Worksheets("Derechos de Petición").Range("M4").Value = Me.TextBox8.Value
MsgBox "Datos cargados exitosamente", vbInformation, "Sistema"
Unload Me
End Sub

y esta es la que no me sirve de la otra hoja

Private Sub Ingresar_CJ_Click()
Worksheets("Conceptos Jurídicos").Range("A4").Value = Me.TextBox1.Value
Worksheets("Conceptos Jurídicos").Range("C4").Value = Me.TextBox2.Value
Worksheets("Conceptos Jurídicos").Range("B4").Value = Me.TextBox3.Value
Worksheets("Conceptos Jurídicos").Range("E4").Value = Me.TextBox4.Value
MsgBox "Datos cargados exitosamente", vbInformation, "Sistema"
Unload Me
End Sub

1 Respuesta

Respuesta
1

Tenés varias opciones que te las planteo porque no queda bien en claro desde dónde se llama al UF.

Si tenés 1 solo (recomendable) y se ejecuta desde cualquier hoja, entonces al abrirlo guardas el nombre de la hoja con:

hojita = activesheet.name

Y luego, en la rutina :

Private Sub Ingreso_Click()
Sheet(hojita).Range("A4").Value =Me.TextBox1.Value '(*)
Sheet(hojita).Range("C4").Value = Me.TextBox2.Value

'y así con el resto. El ME. No haría falta si sabemos que se trata del Useform activo.

En la parte de código como primer variable definí:

Public hojita

2- Si el Userform se ejecuta desde un menú principal, y necesitas seleccionar la hoja de destino, deberás incluir un combobox para seleccionarla y luego la copia sería:

Sheet(Combobox1.Value).Range("C4").Value = Me.TextBox2.Value

Observa que en ninguna de las 2 opciones el nombre de la hoja vá entre comillas.

Espero te haya quedado claro sino solicita aclaraciones y continuamos con el tema.

si entendí bien, lo que me aconsejas es nombrar la hoja desde la que se activa el botón ingreso como hojita en este caso, y que la operación de guardado se general ( pero en la hoja que se trabaja) si es asi, como y donde debo declarar el nombramiento de la hoja, y si no me acerque a lo que me querías aconsejar me explicas de nuevo :D

'nombrar la hoja desde la que se activa el botón ingreso':

El Userform tiene muchas macros, ¿verdad? Entonces bien arriba una línea sola :

Public hojita as String

Y además para que se guarde el nombre de la hoja activa, puede ser en el evento Initialize.

Private Sub UserForm_Initialize()
hojita = ActiveSheet.Name
'quiza´s tengas otras líneas....

End Sub

Y el pase como ya te lo indiqué.

Hola Elsa, me sigue generando error ahora en el private sub_ingreso y no se por que, te podría enviar el excel y tu decirme por que se genera??

Si. Podes copiar el correo que aparece en la barra de navegación de mi sitio que dejo al pie (o dejame un correo tuyo aquí)

Ya te envíe el correo ayer, espero me puedas guiar

Lo recibí, trataré de ocuparme mañana. Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas