Windows(...).Activate

gustavomeeuwes

New Member
Joined
Aug 13, 2010
Messages
46
Hola:
Una consulta.
Tengo 2 planillas abiertas. Una de nombre fijo, por ejemplo Planilla.xls que es la planilla que se muestra y la otra que ya guardé con el nombre del valor de una celda, por ejemplo 123.xls. Como hago para mostrar esta última o como hacer para cerrarla y mantener activa la primera.
Probé de forma igual a cuando creé la planilla, pero no funciona.

' Estoy trabajando en la planilla 123.xls, donde 123 es el valor de la celda "C14". "C14" es un valor variable.
...................
ActiveWorkbook.Save
Workbooks.Open Filename:="C:\C.I.S\Planilla.xls"
Windows("Range("C14").Value").Activate
ActiveWorkbook.Close
....................

' Cierro la planilla 123.xls ó mejor dicho Range("C14").Value y debe quedar abierta Planilla.xls

Espero una vez más vuestra ayuda.
Cordiales saludos
Gustavo
 

Excel Facts

Test for Multiple Conditions in IF?
Use AND(test, test, test, test) or OR(test, test, test, ...) as the logical_test argument of IF.
Aclaración:
Al ejecutar la macro paso a paso, ni bien empieza me da error de compilación: Error de sintaxis

ActiveWorkbook.Save
Workbooks.Open Filename:="C:\C.I.S\Planilla.xls"
Windows("Range("C14").Value").Activate
ActiveWorkbook.Close
 
Upvote 0
Aclaración:
Al ejecutar la macro paso a paso, ni bien empieza me da error de compilación: Error de sintaxis

ActiveWorkbook.Save
Workbooks.Open Filename:="C:\C.I.S\Planilla.xls"
Windows("Range("C14").Value").Activate
ActiveWorkbook.Close

Hola Gustavo .

Prueba la sintaxis siguiente :

Code:
Windows(CStr(Range("C14").Value)).Activate

De hecho, no es necesario activar la ventana del fichero para cerralo. Se puede conseguir cerrar la planilla 123 de la manera siguiente :

Code:
Workbooks(CStr(Range("C14").Value)).Close
 
Upvote 0
Hola Jaafar:
Muchas gracias por la respuesta.
Utilicé el
Code:

Workbooks(CStr(Range("C14").Value)).Close</PRE>y funciona bien, cierra a la planilla.
El tema es que al cerrarla, me deja de ejecutar la macro, y queda pendiente 1 paso por realizar, que es llamar a otra macro.
Al hacerlo paso a paso, y visualizando el Editor de Visual Basic, al llegar al code de arriba, la planilla se cierra pero también se cierra el mósulo de esa macro y abre el último modulo usado de Planilla General.xls.
Espero haber sido claro.
Como puedo evitarlo?
Una opción se me ocurre que podría ser que al abrirse Planilla General.xls se autoejecute la macro que quedó pendiente.
Cual sería el code en este caso?

Desde ya muchas gracias
Cordiales Saludos
Gustavo
 
Upvote 0
Hola de nuevo Jaafar:
Agregué en ThisWorkbook de Planilla General.xls

Private Sub Workbook_Open()
Application.Run "'Planilla General.xls'!Nueva_Ficha"
End Sub

Donde Nueva_Ficha es la macro a autoejecutarse al abrir Planilla General.xls

Como verá mis conocimientos son nulos.
Gracias. Saludos
Gustavo
 
Upvote 0
Probé con el Run sólo y tampoco:

Private Sub Workbook_Open()
Run "'Planilla General.xls'!Nueva_Ficha"
End Sub

Le hago otra pregunta: porque en el editor de VB algunas macros aparecen sólo con el nombre y otras hacen referencia específica al libro?
En una de esas macros llama a otro libro por lo que que haga referencia estaría bien, pero en otras es una macro interna.
El editor de VB muestra por ejemplo:

Macro1
Macro2
Macro3
Planilla General.xls!Macro4
Macro5
Macro6
Planilla General.xls!Macro7
etc etc
 
Upvote 0
Hola Gustavo,

Me parece que usted está haciendo la vida un poco más complicado que lo necesario. ¿Puede usted explicar en términos generales qué es lo que usted desea hacer? Y no hablo de cosillas muy específicas, sino en general. Puede ser que hay otra solución donde no habrá tantos enredos.

Atte,
 
Upvote 0
Hola Jaafar:
He seguido haciendo pruebas pero todas sin resultado.
Abro Planillla General.xls y con cualquiera de los 2 codes que me envió, activo y despues cierro o cierro directamente el libro 123.xls .
El tema sigue siendo que al guardar y cerrar la planilla 123.xls se corta la macro y me quedan instrucciones por cumplir.
Saludos
Gustavo
 
Upvote 0
Hola de nuevo Jaafar:
Al final pude hacerlo andar.
Puse la macro faltante en ThisWorkbook como autoejecutable al abrir el libro y listo.
Pero quería saber si puedes ayudarme con mi pregunta que incluí:

Le hago otra pregunta: porque en el editor de VB algunas macros aparecen sólo con el nombre y otras hacen referencia específica al libro?
En una de esas macros llama a otro libro por lo que que haga referencia estaría bien, pero en otras es una macro interna.
El editor de VB muestra por ejemplo:

Macro1
Macro2
Macro3
Planilla General.xls!Macro4
Macro5
Macro6
Planilla General.xls!Macro7
etc etc

Además se me arma lío porque cuando guardo un libro con otro nombre, proceso en el que se copian todas las macros, y al querer ejecutar estas macros desde este nuevo libro me dice que no las encuentra.
Ej:
Libro original: Planilla General.xls, lo guardo como Planilla1.xls.
Quiero ejecutar una macro en este último libro y me aparece el error de que no encuentra la macro "Plantilla1.xls'!Macro<!-- google_ad_section_end -->

No se puede evitar la referencia al libro?

Nuevamente gracias y saludos
Gustavo
 
Upvote 0
Cada vez me complico más. Estoy a punto de rendirme.
Cuando hice la macro autoejecutable en Planilla General.xls, y al guardar este libro como 123.xls, se copia esta macro.
Esta macro es para limpiar los datos de la planilla, que guardé en 123.xls, y cargar nuevos datos, guardar con otro nombre, y seguir este "Círculo".
El tema es que como dije antes la macro se guarda en 123.xls, y al abrir esta planilla se autoejecuta la macro y me limpia todos los datos, lo que no debe pasar. La planilla tengo que abrirla para actualizar datos o agregarle notas.
Podría dejar la planilla Planilla General.xls como está, con los datos anteriores, y sobreescribir los datos nuevos, pero no queda "visualmente" bien.
Cada vez lo complico más.

Perdón por esta avalancha de preguntas.

Cordiales saludos
Gustavo
 
Upvote 0

Forum statistics

Threads
1,216,773
Messages
6,132,643
Members
449,739
Latest member
tinkdrummer

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top