[Resuelto] macro: Ejecutar Macro en otro archivo

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[Resuelto] macro: Ejecutar Macro en otro archivo

Notapor physic » Lun Nov 12, 2018 1:04 pm

Estoy buscando una macro para mi Archivo A que ejecute lo siguiente en LibreOffice:

        es necesario pulsar el botón del archivo A para ejecutar una macro ubicada en el otro archivo B.

        tenga en cuenta:

        1) Ya estoy con el archivo B abierto.

        2) nombre de macro en el archivo B es:
   
           macro: Borrar_todo

           biblioteca: VBAProject

           módulo: Módulo1


     Gracias.
Última edición por physic el Mar Nov 13, 2018 11:11 am, editado 1 vez en total
LibreOffice 5.4.4.2 >>> Windows 7
physic
 
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: executar Macro en outro arquivo

Notapor physic » Lun Nov 12, 2018 1:55 pm

yo trabajaba anteriormente con archivos Excel, donde tenía varias macros en la biblioteca VBAProject del archivo Excel.

            hice la conversión de Archivo.xls a Archivo.ods, y la biblioteca VBAProject se mantuvo con el mismo nombre en el nuevo archivo .ods.

            es decir, el nuevo archivo convertido a .ODS, contiene la biblioteca STANDARD y también la biblioteca VBAProject.

            Usted puede ayudarme a crear el comando para ejecutar la macro en el archivo B, utilizando el nombre de esa biblioteca VBAProject.

            entonces haré las pruebas aquí para comprobar lo que va a suceder.


muchas gracias.
LibreOffice 5.4.4.2 >>> Windows 7
physic
 
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: executar Macro en outro arquivo

Notapor fornelasa » Lun Nov 12, 2018 7:32 pm

Solo para no dejar ¿cómo lo hacías en VBA, puedes comentarlo?
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3246
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: macro: executar Macro en outro arquivo

Notapor physic » Lun Nov 12, 2018 10:07 pm

Se ejecuta así en VBA de Excel: Application.Run "Book1.xls! MyMacroName"

ver el ejemplo: https://www.rondebruin.nl/win/s9/win001.htm


abrazos.
LibreOffice 5.4.4.2 >>> Windows 7
physic
 
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am

Re: macro: executar Macro en outro arquivo

Notapor fornelasa » Mar Nov 13, 2018 12:24 am

hice la conversión de Archivo.xls a Archivo.ods, y la biblioteca VBAProject se mantuvo con el mismo nombre en el nuevo archivo .ods.
Entiendo que el archivo tiene extensión .ods
contiene la biblioteca STANDARD y también la biblioteca VBAProject
Módulo1
el nombre del modulo debe ser exacto
Ya estoy con el archivo B abierto
el archivo A y el B están abiertos

Una guía de como hacerlo:
Código: Seleccionar todo   Expandir vistaContraer vista
Sub RunMacroDeOtroArchivo()
    GlobalScope.BasicLibraries.LoadLibrary("Tools")
    nombre = "B.ods"   
     oDocs = StarDesktop.getComponents().createEnumeration()
    Do While oDocs.hasMoreElements()
      oDoc = oDocs.nextElement()
         If HasUnoInterfaces(oDoc, "com.sun.star.frame.XModel") Then
         If oDoc.hasLocation() Then
         If oDoc.Title = nombre Then
    StarDesktop.setActiveFrame(oDoc.CurrentController.Frame)
    oDoc.CurrentController.Frame.ContainerWindow.toFront()
    oDoc.BasicLibraries.loadLibrary("Standard")
    Set scriptProvider = oDoc.getScriptProvider()
        proveedor = scriptProvider.getScript("vnd.sun.star.script:VBAProject.Módulo1.NombreDeTuMacro?language=Basic&location=document")
    proveedor.invoke(array(), array(), array())
       End if
       End If
       End If
Loop
End Sub
No quites el signo de interrogación en NombreDeTuMacro?
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
fornelasa
 
Mensajes: 3246
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: macro: Ejecutar Macro en otro archivo

Notapor physic » Mar Nov 13, 2018 11:10 am

felicitaciones ,

             la macro funcionó perfectamente .


muchas gracias !
LibreOffice 5.4.4.2 >>> Windows 7
physic
 
Mensajes: 85
Registrado: Lun Oct 29, 2018 12:55 am


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados