UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo


No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

JesúsG


Buenas noches a todos. En primer lugar, agradecer de antemano vuestra atención y ayuda.
Estoy haciendo una pequeña aplicación en Excel para llevar un registro de los fichajes de entrada y salida en mi trabajo. Es muy posible que la utilicemos varios compañeros, y cada uno deberá guardar sus horas de entrada y salida exclusivamente.
 La idea es crear dos libros: Uno llamado “Código” y el otro llamado “Control”. Éste último (“Control”) contendrá todas las hojas y formularios y será el que cada usuario copie (y utilice) en su PC.
El primero (“Código”) estará ubicado en una unidad de red a la que tienen acceso todos los ordenadores de mi oficina y contendrá los módulos con el código y las macros. De este modo, si tengo que modificar algo del código, solo tendré que hacerlo en este libro.
Al abrir cada usuario su copia de “Control” se abrirá también (en segundo plano) el libro “Código”. Solamente tengo que utilizar una línea de código para activar cada macro cuando lo necesite, esta línea es:
Application.run(“Código.xlsm!nombre de la macro o procedimiento”)
Y listo. Ahora bien, los formularios son otra cosa. Querría que, el código que desencadena los eventos de un formulario, también estuviese en el libro “Código”, pero no sé cómo hacerlo (ni siquiera sé si es posible) Os pondré un ejemplo:
Tengo un formulario llamado “Antigüedad” en el cual hay varios controles, por simplificar pondré sólo tres:
-          Un combobox llamado Combodia
-          Un textbox llamado valordia
-          Un botón de comando llamado Aceptar
En el botón Aceptar he puesto el siguiente código:
Private Sub Aceptar_Click()
If Combodia.Value <> "" Then
    valordia = 1
Else: valordia = 2
End If
End Sub
(El código es mucho más extenso, pero si puedo solucionar esta parte, lo demás es simplemente aplicar la solución…)
La idea es colocar el código del botón en un módulo del libro “Código”, que podría llamarse Antigüedad_aceptar(), y después, en el botón de comando, poner como código:
Application.run(“Código.xlsm!Antigüedad_aceptar”)
Pero, al hacerlo, no funciona, ya que no encuentra el objeto combodia ni ninguno de los controles del formulario (lógico, puesto que están en un formulario de otro libro)
¿Podríais indicarme si es posible hacer lo que pretendo? Y de ser así, ¿Cómo debería hacerlo?
Os ruego que, si podéis explicármelo, lo hagáis de forma muy clara, ya que no tengo casi conocimientos y me resulta muy difícil en ocasiones seguir las explicaciones.
La versión de Excel que utilizo es Excel 2007.

De nuevo, muchas gracias a todos por vuestra atención y ayuda.

ioyama

avatar
Hola

Revisa el adjunto.

Abre el libro B, ejecuta la macro y se te debería abrir el formulario que está en el libro A

Estoy usando excel 2010 y funciona bien

Un saludo desde Vitoria

JesúsG


Buenas noches ioyama. Ante todo, te agradezco tu pronta respuesta, tu atención y tu ayuda, pero, cuando me dices "revisa el adjunto"... ¿a qué te refieres? No he visto ningún archivo adjunto y revisando en el funcionamiento del foro, no he encontrado ninguna forma para poder localizarlo...
Si fueses tan amable de indicarme dónde o cómo localizar ese adjunto te lo agradecería enormemente.
De nuevo, muchísimas gracias por tu ayuda.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.