Ejecutar un userforms desde otro libro

Hola comunidad,

La verdad no se si se puede pero quería saber si se puede ejecutar un userfoms desde otro libro ejemplo

1 Respuesta

Respuesta
1

Si se puede ...

Sub llamaUf_externo()
'x Elsamatilde
Application.Run "Feedback2014.xlsm!llamaUF"
End Sub

llamaUF es una subrutina que se encuentra en un módulo del libro que contiene al UF (en este caso Feedback), con esta instrucción:

Sub llamaUF()
UserForm1.Show
End Sub

Pero no pierdas de vista que tu libro activo es el que llama al uf y todas las referencias que pudiera tener el UF seguramente son del libro que lo contiene.

Sdos

Elsa

Tengo esto

Libro EP Prueba.xls

Sub llamaUF()
Cálculo_Precio.OptionButton1.Value = True
Cálculo_Precio.Show
End Sub

Nueva ep.xlsm

Sub llamaUF_externo()

Application.Run "EP Prueba.xls!llamaUF"
End Sub

Me sale error 1004 en tiempo de ejecución :/

En primer lugar los libros deben haber sido guardados alguna vez, para que ya tengan su ruta y nombre.

En segundo lugar quizás olvidaste mi recomendaciòn; '... no pierdas de vista que tu libro activo es el que llama al uf y todas las referencias que pudiera tener el UF seguramente son del libro que lo contiene...'

Entonces, por ahora, inhabilita las instrucciones que pudieras tener en el evento Initialize del UF (colócale una comilla delante de cada linea).

Pasa al otro libro y ejecuta la macro 'llamaUF_externo' ...¿se abre el UF con el optionbutton1 seleccionado?

Entonces significa que te respondí correctamente a lo que consultabas; si se puede ejecutar un UF de otro libro y el ejemplo lo demuestra.

Ahora queda que analices y mejores el código que pudieras tener en el UF.

Por favor considera que respondemos a cada tema puntual ... al que todos los usuarios pueden estar leyendo y comprendiendo. Luego en otra consulta deja escrito tu código y con mucho gusto responderé sobre esa situaci`n en particular.

Sdos

Elsa

Otro detalle: mantené los 2 libros en la misma carpeta para probarlos.

Sdos!

al depurar me sale error aca en este codigo :

Private Sub CommandButton1_Click()
Select Case Err.Number
Case 1004
Range("d24").Select
ActiveCell.FormulaR1C1 = "10000"
Range("g32").GoalSeek goal:=((Cálculo_Precio.TextBox1.Value) / 100), changingcell:=Range("d24") <---- error no se porque :/
End Select

Coloca esta linea antes de esa instrucción:

Msgbox activeworkbook.name

Y a continuación vendría la tuya:

Range("g32")---------------------

Esto para confirmar de que libro u hoja se están tomando las celdas.

Te comentè aneriormente que respondì a tu consulta con exactitud y con un ejemplo. Me parece que analizar a continuaciòn la ejecuciòn de còdigo en el UF no corresponde a esta consulta. Por favor deja tu còdigo en otra nueva y con mucho gusto lo analizarè.

Algunos podràn creer que no se puede llamar a un UF desde otro libro... y no es asì. Si se puede pero luego hay que analizar què hace cada UF en particular... de ahì que sea importante dejar tu caso particular en otra consulta, ¿no te parece?

PD) Cuando tengas el resultado del Msgbox seguiremos ajustando tu macro.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas