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
 
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?

Las Macros que residen en otros libros aparecen con la referencia al libro donde se ubican. Las Macros que se ubican dentro del presente libro aparecen solo con el nombre.

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?

No utilises la Method Application.Run para ejecutar la Macro.
Intenta ejecutar la Macro de la forma siguiente :

Call Macro

Como dijo nuestro colega Greg , no esta muy claro lo que usted desea hacer.
 
Upvote 0

Excel Facts

What did Pito Salas invent?
Pito Salas, working for Lotus, popularized what would become to be pivot tables. It was released as Lotus Improv in 1989.
Hola Greg y Jaafar:

El problema de guardar la macro pude solucionarlo. Un tema menos.

Me queda lo siguiente:
Tengo mi planilla original "Planilla General.xls". En esta planilla cuando veo las macros guardadas aparece entre otras:

'Planilla General.xls'!Cerrar_Ficha.Cerrar_Ficha

Lleno los datos, ejecuto la macro para guardar, y la guarda como "123.xls" , donde 123 es el valor de la famosa celda "C14".
Hasta acá todo bien, pero....
Como parte de esta macro de guardar, le cambio la asignación de macros a unos botones, por ejemplo:

ActiveSheet.Shapes("Botón1").Select
Selection.OnAction = "Nombre_Macro"

En el "Nombre_Macro" debería poner
"'Planilla General.xls'!Cerrar_Ficha.Cerrar_Ficha", ya que Cerrar_Ficha es la macro que quiero ejecutar.
Al abrir después el libro 123.xls y hacer click en ese botón, lógicamente me dice que no encuentra la macro.
En este libro, la macro pasó a llamarse:
"'123.xls'!Cerrar_Ficha.Cerrar_Ficha"

La pregunta es si se puede sacar la referencia al libro de la macro y dejemos una macro "genérica" que se ejecute en cualquier otro libro, o en su defecto si al asignarle la nueva macro al botón pueda hacerlo con referencia a la famosa celda "C14" con lo que solucionaría el problema.
En "123.xls" ésta y otras macros más debo poder ejecutarlas, por lo que mi pregunta es extensiva a otras macros que se guardam con referencia al libro.
Espero haber sido claro.
Espero sus comentarios y ayuda.
Desde ya muchas gracias.
Saludos.
Gustavo
 
Upvote 0
Gustavo.

El diseno de su trabajo me parece mas complicado de lo necesario y estoy seguro que se podria lograr lo que deseas con mas facilida si revisaras la logica de su projecto.

Prueba esto :

Que ocurre si usted anade la linea siguiente al evento Workbook_Open del libro 123.xls :

Code:
Private Sub Workbook_Open()
 
    ActiveSheet.Shapes("Botón1").OnAction = "Cerrar_Ficha.Cerrar_Ficha"

End Sub
 
Upvote 0
Mire, Gustavo, tenemos un dicho en inglés: “you can put all the lipstick you want on a sow, but a pig´s a pig.” Más o menos: “no importa la cantidad de lápiz labial que pones en ella, una cerda sigue siendo una cerda.” Mientras vamos creciendo nuestras habilidades en VBA, casi todos llegamos a tener un proyecto donde tenemos macros regados por todo lado como migas de galletas en un jardín de niños y enlaces entre varios cuadernos que son más enredados que un plato de espagueti. Cuando uno se encuentra en circunstancias así, casi siempre existe una estructura muy diferente que sería mejor. Como hemos dicho don Jafaar y yo, si usted nos explica un poco sobre la estructura y metas generales del proyecto puede ser que servimos como faros en la neblina espesa donde usted está en este momento.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>
Saludos,<o:p></o:p>
 
Upvote 0
Hola Greg y Jaafar:
Nuevamente gracias por vuestra dedicación y preocupación.
Después de seguir buscando los errores y tratando a su vez de aprender y no molestarlos a cada rato, pude solucionar el problema.
Hice una copia totalmente limpia de mi planilla original, y me desaparecieron las referencias al libro en las macros, cuando tengo este libro sólo abierto. Quedan solamente con el nombre de la macro y cuando guardo este libro con el otro nombre, puedo ejecutar esas macros sin problemas. No tengo que modificar nada. No sé si puede ser que estuviese arrastrando "basura" y eso me complicaba. Además mi planilla pasó de pesar 2.5 Mb a 200 Kb, a pesar de mantener todos los formatos, colores, etc. El contenido es el mismo pero se redujo el tamaño. En esta planilla limpia hago pruebas, corro las macros y el tamaño se mantiene, como debería ser.

Me queda una última pregunta (ahora sí prometo que es la última), y que no tiene nada que ver con esto.
Puse una función Contar.Si en mi planilla, no dentro de una macro.
Le pongo el rango a buscar, por ejemplo A1:A10000
Después en mi proceso para copiar nuevos datos, se agrega una fila al principio, por lo que los datos contenidos en la columna A se desplazan un lugar hacia abajo.
EL problema es que el rango de la función Contar.Si pasó de A1:A10000 original a A2:A10001.
Lo mismo me pasa si coloco como rango $A$1:$A$10000 , igual me lo corre a $A$2:$A$10001
Debo mantener el rango original para hacer la búsqueda
Alguna idea?

Gracias
Gustavo
 
Upvote 0
Hola Greg y Jaafar:
Nuevamente gracias por vuestra dedicación y preocupación.
Después de seguir buscando los errores y tratando a su vez de aprender y no molestarlos a cada rato, pude solucionar el problema.
Hice una copia totalmente limpia de mi planilla original, y me desaparecieron las referencias al libro en las macros, cuando tengo este libro sólo abierto. Quedan solamente con el nombre de la macro y cuando guardo este libro con el otro nombre, puedo ejecutar esas macros sin problemas. No tengo que modificar nada. No sé si puede ser que estuviese arrastrando "basura" y eso me complicaba. Además mi planilla pasó de pesar 2.5 Mb a 200 Kb, a pesar de mantener todos los formatos, colores, etc. El contenido es el mismo pero se redujo el tamaño. En esta planilla limpia hago pruebas, corro las macros y el tamaño se mantiene, como debería ser.

Me queda una última pregunta (ahora sí prometo que es la última), y que no tiene nada que ver con esto.
Puse una función Contar.Si en mi planilla, no dentro de una macro.
Le pongo el rango a buscar, por ejemplo A1:A10000
Después en mi proceso para copiar nuevos datos, se agrega una fila al principio, por lo que los datos contenidos en la columna A se desplazan un lugar hacia abajo.
EL problema es que el rango de la función Contar.Si pasó de A1:A10000 original a A2:A10001.
Lo mismo me pasa si coloco como rango $A$1:$A$10000 , igual me lo corre a $A$2:$A$10001
Debo mantener el rango original para hacer la búsqueda
Alguna idea?

Gracias
Gustavo

Hola Gustavo.

Proceda de la forma siguiente:

1- Seleccione el Rango A1:A10000 y dale un Nombre mediante el Name Box situado a la izquierda de la barra de Formulas . por ejemplo valdria bien el nombre MyRango

2- Reemplaze la Funcion : Contar(A1:A10000) por Contar(MyRango)

Asi se puede mantener el rango original aunque se agregen nuevas filas el pricipio.
 
Upvote 0
Nuevamente gracias Jaafar.
Vuestra ayuda me ha servido de mucho.
Espero no volver a molestarlo, al menos por esta planilla.
Un cordial saludo
Gustavo
 
Upvote 0

Forum statistics

Threads
1,223,956
Messages
6,175,611
Members
452,660
Latest member
Zatman

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