Ejecutar Macro En Nuevo Libro Sin Detencion!!

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 19 Jul 2006 12:58

Tengo un código de este estilo:

....
Windows("ORIGEN.xls").Activate
Ruta = ActiveWorkbook.Path
Workbooks.Open Filename:=Ruta & "\DESTINO.xls"
Run "'DESTINO.xls'!PASO"

'La macro llamada PASO tiene el siguiente código:

Windows("ORIGEN.XLS").Activate
ActiveWorkbook.Save
ActiveWindow.Close
Windows("DESTINO.XLS").Activate
Cells(1,1).select
...

'Sin embargo, al cerrar mediante la macro PASO el libro ORIGEN.xls la ejecución del código se interrumpe. Cómo hago para que la macro PASO siga su curso ?

Muchas gracias a aquella alma Exceliana caritativa que me pueda ayudar con este problema,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor opermty » 19 Jul 2006 13:07

No lo he probado pero podrias intentar activar el libro abierto antes de cerrar el libro origen


milibro.activate
origen.close

algo asi :)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
opermty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 29 Abr 2006 04:11
Ubicación: MONTERREY NL MX

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 19 Jul 2006 13:25

Gracias por la sugerencia opermty. Desafortunadamente no funcionó.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor ST » 19 Jul 2006 18:10

segun entiendo el problema puede estar en que al abrir el archivo destino,este pasa a ser el libro activo y por eso se interrumpe la macro.
lo que "oper" quiso decirte,es que antes de correr la macro asegurate que el libro origen este activado.

Código: Seleccionar todo
Windows("ORIGEN.xls").Activate
Ruta = ActiveWorkbook.Path
Workbooks.Open Filename:=Ruta & "\DESTINO.xls"
Windows("ORIGEN.xls").Activate 
Application.Run "'DESTINO.xls'!PASO"


una opcion paralela es utilizar el evento open en el libro destino para que se ejecute la macro de nombre "paso" o en su defecto una macro auto open,asi con solo abri el libro destino se ejecutara la macro.ahi mismo puedes activar de niuevo el libro origen al finalizar la macro "paso"

pero como dice oper no lo he probado y a lo mejor estot "teorizando mal",por lo que te recomiendo cheques estos links:
http://www.exceluciones.com/portal/viewtopic.php?t=6588&highlight=

el metodo esta en el archivo de ejemplo que puse :
http://www.exceluciones.com/portal/viewtopic.php?t=6501&highlight=
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 19 Jul 2006 18:53

Gracias ST por tus comentarios. Sin embargo la situación es la siguiente:

Una vez se empieza a ejecutar la macro del libro destino, ESTA SE DETIENE EN EL INSTANTE QUE CIERRO EL LIBRO ORIGEN. Obviamente la solución serí­a no cerrar el libro origen mientras se ejecuta la macro del libro destino. Pero para mis necesidades es imprescindible que una vez se empiece a ejecutar la macro de destino, se cierre el archivo origen.

Espero que con este pequeño trabalenguas haya podido ilustrar mejor el problema. Cordialmente,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor ST » 19 Jul 2006 20:14

Felipe con el evento open funcionamuy bien,lo acabo de probar:

en el libro origen ,en un modulo estandar colocas tu macro:
Código: Seleccionar todo
Sub otrosub()
Ruta = ActiveWorkbook.Path
Workbooks.Open Filename:=Ruta & "\destino.xls" 'abres el libro destino
'que pasa a ser el activo por defecto,
Windows("origen.xls").Activate 'entonces tienes que activar nuevamente el "origen"
ThisWorkbook.Close 'lo cierras y en this workbook el evnto Workbook_BeforeClose lo guardara
'Application.Run "'destino.xls'!PASO"
End Sub


ahora ahi mismo en thisworkbook pones esto:
Código: Seleccionar todo
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub

este paso se puede obviar si "guardas" antes de cerrar el libro :-)

en tu libro destino en el evento open:
Código: Seleccionar todo
Private Sub Workbook_Open()
'el evento open del libro destino selecciona el rango especificado y..
Sheets(1).[a1].Select
'continua con la rutina de la macro
MsgBox "Aqui pones el resto de tu codigo"
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor ST » 19 Jul 2006 20:49

me gusta mas de la sig manera :-)

1.-abro el libro destino.(solamente eso)
Código: Seleccionar todo
Sub AbrirDestino()
Ruta = ActiveWorkbook.Path
Workbooks.Open Filename:=Ruta & "\destino.xls" 'abres el libro destino
End Sub


2.-verifico las instrucciones para guardar el libro "origen" en el evnto Before_Close,en ThisWorkBook.
Código: Seleccionar todo
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
    ThisWorkbook.Save
Application.DisplayAlerts = True
End Sub


3.-en el libro destino en el evento "open" coloco las insrucciones para cerrar el libro "origen" [el cual guardara los cambios antes de cerrarse mediante el evento BeforeClose.mencionado anteriormente.
Código: Seleccionar todo
Private Sub Workbook_Open()
Sheets(2).Activate 'el evento open del libro destino selecciona el rango especificado y.......
[b5].Select
Workbooks("origen.xls").Close
'continua con la rutina de la macro
MsgBox "Aqui pones el resto de tu codigo"
End Sub


espero sea esto,lo que deseas
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 21 Jul 2006 10:34

ST muchí­simas gracias por tu colaboración. Todo perfecto. Gracias de nuevo,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!! No funcioní³...

Notapor felipe Rodriguez Estupiñ » 21 Jul 2006 12:09

ST una cosa: revisé la macro pero aún se detiene la ejecución. Si miras bien el msgbox no se muestra. Eso quiere decir que la macro se está deteniendo al cerrar el libro origen.xls...
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor ST » 21 Jul 2006 12:52

la solucion rapida :-) es crear un sub que sea llamado desde el evento open.por ejemplo.
obviamente debe estar antes de cerrar el libro "origen"
Código: Seleccionar todo
Private Sub Workbook_Open()
Sheets(2).Activate
[b5].Select 'abre el libro en el sito especificado
mensaje 'esta es tu macro que sera llamda
Workbooks("origen.xls").Close
End Sub



y en un modulo estandar debe existir tu macro que realizara las funciones ya determinadas por ti.
Código: Seleccionar todo
Sub mensaje()
MsgBox "Aqui pones el resto de tu codigo"
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 21 Jul 2006 13:31

Hola ST

De esto se puede concluir definitivamente que es necesario mantener el archivo origen abierto mientras corre la macro del archivo destino ? :(

Saludos,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA

Notapor T3MPL4R10VB » 21 Jul 2006 19:17

A modo de Idea:

Puedes tratar que el libro de origen le adicione una macro al archivo de destino y este ultimo sea el que cierre el archivo de Origen.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
T3MPL4R10VB
Miembro Frecuente
Miembro Frecuente
 
Registrado: 08 Mar 2006 19:16
Ubicación: COLOMBIA

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor ST » 25 Jul 2006 15:58

Felipe y cual seria el problema de mantenerlo abierto por segundos ?????????????
si mientras corre el codigo no se puede manipular !!!!!!!
a menos que sea una super macro,no debe tardar tanto en cerrarse,mas que algunos segundos o fracciones de seg.
y cuando la macro termina el libro origen estara cerrado

checate este otro ejemplo. :-)
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Ejecutar Macro En Nuevo Libro Sin Detencion!!

Notapor felipe Rodriguez Estupiñ » 26 Jul 2006 11:37

Hola ST

En realidad lo que sucede es que el archivo origen está montado en un servidor y hay 10 usuarios que accesan a él frecuentemente. El propósito de cerrarlo una vez haya creado el archivo destino es el de evitar errores por accesos simultáneos ó en menor escala evitar que un usuario que intente abrir el archivo orí­gen sólo lo pueda hacer en modo de lectura.
Por lo pronto hice que el archivo origen estuviera abierto menos tiempo importando un módulo auto_open en destino.

Gracias,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
felipe Rodriguez Estupiñ
Miembro Frecuente
Miembro Frecuente
 
Registrado: 23 Dic 2005 11:58
Ubicación: BOGOTA


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Inti y 8 invitados