Access - Necesito una función de vba en access que compruebe si un libro de excel está abierto

 
Vista:

Necesito una función de vba en access que compruebe si un libro de excel está abierto

Publicado por Fco. Javier (10 intervenciones) el 07/08/2018 08:35:27
Hola a todos y gracias de antemano.

Necesito una función de vba en access que compruebe si un libro de excel está abierto.

He probado a seleccionar el libro con windows("nombreLibro").Activate y salta un error.
También he probado con workbooks("nombreLibro").Activate y más de lo mismo.

El error salta este o no el libro abierto, por ello pienso que estas instrucciones no funcionan para construir la función.

Alguien sabe como poder hacerlo??

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Necesito una función de vba en access que compruebe si un libro de excel está abierto

Publicado por Anonimo (3312 intervenciones) el 07/08/2018 13:03:00
Una curiosidad: ¿esta activada la referencia a Excel en Access? … de no estarlo no reconocerá ningún elemento de ese objeto externo (Excel) e indicara error …. (error a secas es una ambigüedad, le suele acompañar un mensaje 'que a veces' aclara algo, sin el mensaje ni aclara ni por supuesto oscurece)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito una función de vba en access que compruebe si un libro de excel está abierto

Publicado por Fco. Javier (10 intervenciones) el 07/08/2018 13:34:26
Hola.

Las referencias está activadas porque el libro de excel que tiene que abrir, lo abre.
El programa lo que tiene que hacer es comprobar si el libro está abierto, y si no lo está, abrirlo.

La macro que abre el archivo es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
Private Sub sub_AbrirArchivoExcel(ByRef str_NombreArchivo As String, ByVal int_IdRutaArchivo As Integer)
 
    Dim str_RutaArchivoExcel As String
    str_RutaArchivoExcel = DLookup("Fld_Str_Ruta_TblRutas", "TBL_Rutas", "Fld_Int_ID_Registro_TblRutas =" & int_IdRutaArchivo)
 
    str_RutaArchivoExcel = str_RutaArchivoExcel & str_NombreArchivo
 
    Set mObj_Excel = GetObject(str_RutaArchivoExcel)
    mObj_Excel.Activate
    mObj_Excel.Application.Windows(str_NombreArchivo).Visible = True
End Sub

Esta subrutina es llamada desde otra. Lo que quiero es que el programa compruebe si el archivo excel ya se encuentra abierto antes de llamar a esta subrutina.

El error que me lanza es el siguiente:
Se ha producido el error 429 en tiempo de ejecución:
El componente ActiveX no puede crear el objeto

Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito una función de vba en access que compruebe si un libro de excel está abierto

Publicado por Anonimo (3312 intervenciones) el 07/08/2018 18:49:34
La forma rápida de solucionar el problema (dado que se conoce el numero de error que provoca un intento de reapertura) es crear un control de errores y si se produce ese en particular, salir del control sin ejecutar el comando (lo que es un clásico IF THEN ELSE de los de siempre......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Necesito una función de vba en access que compruebe si un libro de excel está abierto

Publicado por Fco. Javier (10 intervenciones) el 08/08/2018 09:50:51
Un control de errores fue lo primero que se me ocurrio. El problema es que el error salta este el archivo de excel abierto o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar