Exportar datos entre userform desde varios libros

Tengo un libro llamado DESING DVACHQ222.xlsm con un userform llamado UserForm7 donde ejecuto un combobox con el nombre Comb_Familia donde se despliega una serie de ítems y mediante case según el ítem, me abre un libro diferente, hagamos un ejemplo con el ítem "Metal" el cual me abre un libro llamado Biblioteca_Metal.xlsm y hace una llamada a un userform en dicho libro llamado Form_Metal en donde se rellena unos textbox y combobox y lo que no consigo hacer es pasar los datos de los textbox del formulario Form_Metal al formulario UserForm7 del libro DESING DVACHQ222.xlsm.

Ejemplo de datos a exportar del Userform llamado Form_Metal al Userform7:

- Libro Biblioteca_Metal.xlsm en Form_Metal del TextBox1 pasar dato al libro DESING DVACHQ222.xlsm en Userform7 al Textbox1a

- Libro Biblioteca_Metal.xlsm en Form_Metal del TextBox2 pasar dato al libro DESING DVACHQ222.xlsm en Userform7 al Textbox2a

 

- Libro Biblioteca_Metal.xlsm en Form_Metal del Combobox1 pasar dato al libro DESING DVACHQ222.xlsm en Userform7 al Combobox1a

Nota: Una vez exportado los datos al userform7 cerrar userform y cerrar libro DESING DVACHQ222.xlsm

Un Cordial Saludo

David C.

1 respuesta

Respuesta
2

H   o l a:

Realiza los siguientes pasos:

Lo que debes poner en tu libro DESING DVACHQ222.xlsm:

  1. En el userform7 pon lo siguiente en el evento change de tu combo Comb_Familia. Lo que hace es abrir el archivo "Biblioteca_Metal", después ejecuta la macro "abrir" 
    Private Sub Comb_Familia_Change()
    'Por.Dante Amor
        ruta = ThisWorkbook.Path & "\"
        Select Case Comb_Familia
            Case "metal"
                Workbooks.Open "Biblioteca_Metal.xlsm"
                Run "'Biblioteca_Metal.xlsm'!abrir"
        End Select
    End Sub
  2. En un módulo pon la siguiente macro: 
    Sub PasaDatos(wtxt1, wtxt2, wtxt3)
    'Por.Dante Amor
        UserForm7.TextBox1 = wtxt1
        UserForm7.TextBox2 = wtxt2
        UserForm7.ComboBox1 = wtxt3
    End Sub

Ahora, lo que debes poner en el libro "biblioteca_metal.xlsm":

  1. En el Form_Metal, en un botón:
    Private Sub CommandButton1_Click()
    'Por.Dante Amor
        Run "'DESING DVACHQ222.xlsm'!PasaDatos", Me.TextBox1, Me.TextBox2, Me.ComboBox1
    End Sub
  2. En un módulo pon la siguiente macro:
    Sub abrir()
    'Por.Dante Amor
        Form_Metal.Show
    End Sub

La secuencia es la siguiente:

- Al cambiar el comb_familia, abre el libro y ejecuta la macro "abrir", la macro "abrir" abre el formulario "form_metal".

- En el form_metal capturas los datos en los textbox y combobox, presionas un botón,

- El botón ejecuta la macro "PasaDatos" que está en un módulo del libro "DESING" y le pasa como parámetros el textbox1, el textbox2, y el combobox1.

- La macro PasaDatos, a su vez le pasa los datos al userform7 (el cual sigue en ejecución) a sus textbox1, textbox2 y combobox1.


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

Buenas noches,

En primer lugar muchas gracias por contestar , he seguido tus directrices pero algo estoy haciendo mal en primer lugar he cambiado la siguiente macro  no me funcionaba.

Private Sub Comb_Familia_Change()
Select Case Comb_Familia
Case "Metal": Me.Comb_Si_No = "Si"
 Application.ScreenUpdating = False
Application.DisplayStatusBar = False
On Error Resume Next
Dim Ruta As String, direccion1 As String
Ruta = "C:\Users\DAVID CA\Desktop\01-04-16\05-11-16\"
fichero1 = "\BIBLIOTECA_METAL.xlsm"
direccion1 = Ruta & fichero1
Workbooks.Open Filename:=direccion1
Workbooks("BIBLIOTECA_METAL.xlsm").Worksheets("Menu").Activate
Run "BIBLIOTECA_METAL.xlsm!abrir"
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
End select

luego he seguido las directrices en un modulo del libro

DESING DVACHQ222.xlsm

he colocado la siguiente macro

Sub PasaDatos(Control12, Control4, Control19)
'Por.Dante Amor
    UserForm7.Text_Precio = Control12
    UserForm7.Comb_Mda = Control4
    UserForm7.Text_Acabado = Control19
End Sub

en el libro BIBLIOTECA_METAL.xlsm en el Form_Metal en un boton he colocado la siguiente:

Private Sub Exportar_Datos_Click()
 Run "'DESING DVACHQ222.xlsm'!PasaDatos", Text_Precio, Comb_Mda, Text_Acabado
End Sub

 y en un modulo del libro BIBLIOTECA_METAL.xlsm

Sub abrir()
'Application.DisplayAlerts = False
Form_Metal.Show 'False
End Sub

y no me funciona, no se...

Un Cordial Saludo

David.C

Bien ya está ...

Private Sub Exportar_Datos_Click()
 Run "'DESING DVACHQ222.xlsm'!PasaDatos", Control12, Control4, Control19
End Sub

Mucha gracias

Buen trabajo

Buenos días Sr. Danter Amor

Tengo un problema a la hora de cerrar el libro de donde extraigo los datos llamado

BIBLIOTECA_METAL.xlsm

todo el proceso es excelente pero a la hora de haber recibido los datos del libro

BIBLIOTECA_METAL.xlsm

y pasados al userform7 del libro

DESING DVACHQ222.xlsm

quiero cerrar tanto el userform 

Form_Metal.Show

y el  libro Biblioteca_metal.xlsm pero tambien me cierra el userform7 del libro DESING DVACH222.XLSM.

Como lo puedo solucionar.

Un Cordial Saludo

David Calleja

No pusiste de qué forma estás cerrando tu formulario ni cómo cierras el libro.

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en el tema de microsoft Excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas