** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Localizar Excel y leer datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoLocalizar Excel y leer datos

 Responder Responder Página  <12
Autor
Mensaje
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 20/Septiembre/2019 a las 19:16
Hola de nuevo, Pedro, acabo de hacer una prueba muy simple y o mucho me equivoco o desmiente eso que acabas de indicar.
Sub Prueba()
Dim xls(5) As Variant, i As Long
For i = 0 To 5
   Set xls(i) = CreateObject("Excel.Application")
   xls(i).Visible = True
   xls(i).Workbooks.Add
Next i
End Sub
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 20/Septiembre/2019 a las 19:27
He escrito:
sólo se pueden abrir 2 o más instancias de excel o word por código (createobject).
Lo que no he conseguido es hacerlo es sin create object
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 20/Septiembre/2019 a las 23:00
Vaya, entonces Pedro, te he leído mal. De cualquier modo acabo de abrir 5 instancias seguidas de Excel 2019 desde el botón de la barra de tareas.

Editado por Emilio - 20/Septiembre/2019 a las 23:02
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 20/Septiembre/2019 a las 23:18
Pero yo diría que son 5 ventanas diferentes pero en una sola instancia de excel.
Si se ejecuta el código que puse, el getobject puede recorrer las 5 ventanas o eso creo
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 07:17
Como sabéis Excel no permite abrir dos libros con el mismo nombre en una misma instancia, mientras que si lo permite en distintas instancias, el modo de abrir mas de una instancia es el que yo decía: botón derecho sobre el botón de la barra de tareas.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
happy Ver desplegable
Moderador
Moderador


Unido: 29/Enero/2005
Localización: España
Estado: Sin conexión
Puntos: 3192
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 10:00
Pero amoave Smile ¿Por qué no haceis la prueba completa en la versión 2019 y así salimos de dudas? Es decir, abrir por separado excel y desde ahí 1 libro excel. Repetir esto (importante volver a abrir por separado excel) varias veces y abrir desde ahí otro libro excel, y luego ejecutar el código:

set obj=getobject(,"excel.application")
for each w in obj.workbooks
    debug.print w.fullname
next

(declarando las variables y todo eso) 

Yo por mi parte insisto. En la versión 2010 y en la 2013 a las que sí tengo acceso, excel abre distintas instancias según la forma en que se abren los libros excel y el código arriba expuesto sólo es capaz de mostrar los libros que estén contenidos en la instancia de excel que se haya abierto en primer lugar

Anda, porfis, haced la prueba y sacadnos de dudas ... Wink


Editado por happy - 21/Septiembre/2019 a las 10:01
Saludos,

Juan M. Afan de Ribera
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 10:16
Window 10 y excel2019
En inicio clik sobre icono excel y en recientes abro un libro, minimizo. Otra vez en inicio click sobre el icono excel y en recientes abro otro libro.
Ejecuto el código y getobject saca los dos libros.


Edito y añado: Con win10 y excel 2016 el comportamiento es el mismo


Editado por prga - 21/Septiembre/2019 a las 10:29
Arriba
happy Ver desplegable
Moderador
Moderador


Unido: 29/Enero/2005
Localización: España
Estado: Sin conexión
Puntos: 3192
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 10:33
No no no no Wink

Si yo hago eso, entonces en las versiones que antes comentaba también me pone los libros dentro de la misma instancia. El método para que hagas las pruebas es el siguiente:

- abrir el programa excel a secas (nada de abrir un libro desde un acceso directo en recientes o algo así, sólo el programa Excel, nada más)
- desde el excel abierto ir al menú Archivo, Abrir (o como aparezca en la versión 2019) y navegar seleccionando algún libro excel que tengas

repetir estas 2 acciones varias veces ... probar el código de antes ... ¿qué pasa? Ermm


Editado por happy - 21/Septiembre/2019 a las 10:36
Saludos,

Juan M. Afan de Ribera
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 10:48
Lo he hecho así con el 2019 y con el 2016, vamos, abro excel, abrir, examinar, busco un libro y abro.
Repito lo mismo y abro otro libro.
 El getobject detecta los 2
Edito y añado: Abro excel y creo un libro nuevo ( ventana con libro1), minimizo. Abro otra vez excel y creo un libro nuevo, crea otra ventana como libro2.
Ejecuto el codigo pero pidiendo en .Name, saca los nombres de libro 1 y libro 2.
Asi es que ????


Editado por prga - 21/Septiembre/2019 a las 10:54
Arriba
happy Ver desplegable
Moderador
Moderador


Unido: 29/Enero/2005
Localización: España
Estado: Sin conexión
Puntos: 3192
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 11:01
Pues según esa prueba, si no hay algo más, parece que el funcionamiento entre versiones es diferente. Creo que Xavi tiene también la 2016 (no así el cliente al que se refiere, que tiene la 2013). A lo mejor podría confirmarlo él.

A lo mejor lo han solucionado con las nuevas versiones, pero en las antiguas, pongamos que trabajas con dos pantallas ..., si tienes 2 libros abiertos y quieres comparar uno con otro (visualmente). ¿Qué haces? Pones un libro en una pantalla y otro libro en la otra pantalla y comparas o copias valores de un lado a otro, o cosas así. Peeeero ... si los dos libros pertenecen a la misma instancia, a la que mueves un libro a una pantalla, el otro le sigue obediente y no hay manera de separarlos en 2, porque están contenidos en el mismo MDI contenedor y se mueven al unísono y también les afectan muchas cosas comunes. Esto a veces puede estar bien, pero otras veces fastidia mucho. Según lo que quieras conseguir, claro. Entonces es cuando te aseguras de abrir "por separado" esos dos libros para poder conseguir así algo de "autonomía".

No se si esto lo han solucionado y aunque dos libros pertenezcan a la misma instancia de Excel, tengan esa "autonomía" uno de otro (a lo mejor pertenecen al mismo "padre", pero NO al mismo MDI (que no se si eso es posible ...)

En fin ...


Editado por happy - 21/Septiembre/2019 a las 11:03
Saludos,

Juan M. Afan de Ribera
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 12:49
Para aclarar un poco la cuestión y como dije en otro post, a partir de alguna versión/actualización de office el comportamiento cambió y no era posible tener dos instancias diferentes del mismo documento word (al menos no supe/se hacerlo), una de escritura/lectura y la segunda de solo lectura en otra pantalla( para consultar diferentes partes del documento como había hecho otra veces). No profundicé más, ya que utilice la opción Vista-nueva ventana(desconocía esa opción) que hace dos clones del documento y permite trabajar en las dos pantallas indistintamente reflejándose los cambios de una en la otra(parece ser un sólo documento con 2 vistas).
Por otra parte, con el 2016 y 2019, puedo tener 2 libros o documentos word diferentes en la misma instancia y colocar uno en la pantalla 1 y el otro en la pantalla 2 y copiar, pegar etc etc desde uno al otro sin aparentes problemas.
Espero que este comentario ayude a alguien.
Saludos 

Arriba
happy Ver desplegable
Moderador
Moderador


Unido: 29/Enero/2005
Localización: España
Estado: Sin conexión
Puntos: 3192
Enlace directo a este mensaje Enviado: 21/Septiembre/2019 a las 13:46
A lo mejor lo que comentas podría estar en la configuración de Word o Excel y tocando alguna cosa podría volver a cómo estaba. Aunque leyendo lo que explicas puede que en lo referente a la/s instancia/s hayan arreglado cosas y lo están haciendo de forma diferente. Sinceramente, no lo sé. Como he dicho no tengo esas dos versiones y no conozco los cambios en cuanto a las versiones anteriores Confused

En todo caso, todo esto que estamos discutiendo en este hilo me parece super-interesante de saber. Supongo que como mucha otra gente, yo personalmente, aunque trabajo principalmente con Access y VBA, utilizo mucho la salida de datos hacia Excel (informes estadísticos de todo tipo) y también hacia Word (plantillas de documentos convertibles después en PDF)

Por ejemplo, entre las rutinas que expuso Xavi en su primer post y la que encontré por ahí y que transformé un poco para que sirviera para este hilo, se puede montar un método para hacer lo mismo con instancias de otras aplicaciones que permitan automatización (Word, Access, Acrobat). Sólo hay que modificar los nombres de las ventanas de cada aplicación (en Word creo que se basan en la ventana OpusApp y en Access es OMain) y también el GUID registrado por cada una de ellas. Según el objeto Reference de Access, para estos programas del Office esos guid son:

Access        {4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}
Excel         {00020813-0000-0000-C000-000000000046}
Word          {00020905-0000-0000-C000-000000000046}

En fin creo que es interesante el tema Geek


Saludos,

Juan M. Afan de Ribera
Arriba
 Responder Responder Página  <12
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable