Grabar, buscar y editar desde formulario

Espero que a pesar de todo esto que estamos pasando todos, tu familia y tu estén bien!

En otras ocasiones, me has ayudado mucho y ahora mismo tengo algo que me está rompiendo la cabeza desde hace días y no logro una solución. A ver si me podrías ayudar.

Ahora mismo tengo un formulario donde almaceno entradas directamente al libro donde ejecuto la macro del formulario de ingreso de datos. Pero lo que realmente necesito es hacer un formulario que además de grabar en un libro diferente al que se ejecuta el formulario, también se pueda buscar y editar lo que está en el libro de destino.

La primera parte (guardar los datos en el libro SHAREPOINT.xlsx) he logrado, pero lo demás no he podido!!!  Crees que se pueda hacer eso??Te dejo el link con los archivos, por si es mas fácil para ti entender la pregunta. https://drive.google.com/file/d/1gF2ogGtbrmObRIA4O28okSiYuFPu24cb/view?usp=drivesdk

1 respuesta

Respuesta
1

No se a quien va dirigida la consulta pero viendo que no tenés respuesta aún, aquí va mi idea.

En el evento Initialize debes guardar el nombre del libro y hoja de destino.

Private Sub UserForm_Initialize()
'se declara een una variable el libro activo que tiene el UF
Set Origen = ActiveWorkbook
'se guarda la ruta y nombre del segundo libro
ruta = "D:\carpetas Datos\Descargas\APLICA_EXCEL-2021\Blog\"
libro2 = "ABM_Base.xlsm"
'se abre el segundo libro, que pasa a ser el activo
Workbooks.Open (ruta & libro2)
'se guarda su nombre y nombre de la hoja de destino
Set Destino = ActiveWorkbook
Set hod = Destino.Sheets("PROVEEDORES")
'se vuelve al libro con el UF
Origen.Activate
Label7.Caption = Application.WorksheetFunction.Max(hod.Range("A:A")) + 1
End Sub

Al inicio del código del Userform debes declarar las variables que serán de uso en todo el formulario:

Dim hod, Destino

Luego en el pase de datos harás referencia a 'hod' que es la que contiene el nombre del libro + hoja, con instrucciones como éstas por ejemplo:

Sub paseDatos()
    Label7.Caption = hod.Range("A" & fily)
    TextBox4.Text = hod.Range("B" & fily)
    TextBox6.Text = hod.Range("C" & fily)
'...sigue

Antes de cerrar el Userform tendrás que cerrar y guardar ese libro. Estoy utilizando el siguiente formulario (*) donde tengo un botón de SALIR y allí coloqué el siguiente código:

Private Sub CommandButton2_Click()  'botón Salir
Destino.Save
Destino.Close
Unload Me
End Sub

* Este formulario queda explicado en el video N° 6 de mi canal  

Sdos y no olvides valorar la respuesta.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas