Access - Ejecutar macro de un fichero excel abierto y visible desde Access

 
Vista:

Ejecutar macro de un fichero excel abierto y visible desde Access

Publicado por pepe mir (2 intervenciones) el 05/04/2019 23:02:18
Ejecuto eficazmente macros de ficheros de excel cerrados desde Access VBA mediante el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub EjecutarMacroExceldesdeAcces()
 
    Dim oXL As Object
    Dim sFullPath As String
    Dim srcfile As String
    srcfile = "C:\AccessOL\OL_Activa_ResultatsDeGestio\OLresultadosGestion.xlsm"
 
Set oXL = CreateObject("Excel.Application")
 
    sFullPath = srcfile
 
    With oXL
 
        .Visible = True
        .Workbooks.Open (sFullPath)
 
        .Run "Renumerar"
 
        'Aquesta és propiament la macro d'Excel que envia l'esquema a Accces
 
        .Run "EnviarEsquemaDeComptesAAcces"
 
        .Run "ImportarAnyDelsExercicis"
 
 
    End With
 
    Set oXL = Nothing
 
End Sub

No obstante mi necesidad ahora es otra. Necesito ejecutar una macro de un fichero Excel desde Access estando el fichero de Excel abierto y visible.

Si ejecuto un código similar al anterior vuelve a abrir Excel y vuelve a abrir el fichero Excel en modo lectura. No es esto lo que necesito. Insisto, necesito ejecutar desde Acces una macro de un fichero Excel que ya esta abierto y visible.

¿Alguien puede por favor decirme como puedo modificar mi código para cumplir mi objetivo?-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

Ejecutar macro de un fichero excel abierto y visible desde Access

Publicado por JOSEP MIR MORALES (2 intervenciones) el 07/04/2019 12:04:12
Debo aclarar que las macros del fichero Excel a ejecutar no son consecutivas, es decir no deben ejecutarse una inmediatamente después de la otra, ni siquiera la segunda debe ejecutarse sistemáticamente. El proceso es el siguiente: en la primera macro de Excel se manda a Acces una estructura de datos (una estructura de cuentas contables), cuando Access la ha recibido y registrado en una tabla, un módulo vba de Access analiza si la estructura recibida de Excel es correcta (en concreto analiza si la estructura contiene todas las cuentas necesarias para dar resultados correctos), si la estructura es incorrecta sencillamente da un MsgBox advirtiéndolo e indicando al usuario porque es incorrecta para que el usuario corrija en Excel, si la estructura es correcta, entonces se desencadena un proceso en vba-Acces de cálculo de resultados conforme a la estructura recibida de Excel, una vez calculada se debe ejecutar desde Acces una macro de Excel por la que Excel recoge estos resultados estructurados calculados por Acces.

La secuencia es la siguiente:

Procedimiento 1 de Acces ejecuta macro de Excel que le envia una estructura de datos definida en Excel
Procedimiento 2 de Acces analiza si la estructura es correcta:
Si es incorrecta, comunica la incorrección
Si es correcta, un Procedimiento 3 de Acces calcula resultados conforme a la estructura y un procedimiento 4
ejecuta una macro de Excel que captura estos resultados calculados por Access.

A ver si por favor me ayudáis a ejecutar dos macros de Excel la segunda macro sin ser consecutiva de la primara y estando el fichero abierto sin que se abra una segunda instancia.
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