Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269

    vba Excel--- lanciare macro da un altro pc

    Ammettiamo che ho un wbook chiamato PROVA.XLS con una macro coin una sub MIA_MACRO()

    Il wbook risiede su \\mio_server\mia_dir\PROVA.XLS

    Ora posso lanciare MIA_MACRO() da un altro pc?
    Grazie.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    La macro viene lanciata quando apri il foglio di Excel o quando interagisci con un elemento del tuo file che scatena l'esecuzione della macro.

    In sostanza, dallo stesso PC o da un altro PC, tutto quello che puoi fare è aprire il file con Excel ottenendo lo stesso risultato.

    Spiega qual è lo scopo della macro, probabilmente non si tratta dello strumento corretto da utilizzare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 1999
    Messaggi
    269

    forse scrivo sciocchezze, scusatemi...

    Originariamente inviato da alka
    La macro viene lanciata quando apri il foglio di Excel o quando interagisci con un elemento del tuo file che scatena l'esecuzione della macro.

    In sostanza, dallo stesso PC o da un altro PC, tutto quello che puoi fare è aprire il file con Excel ottenendo lo stesso risultato.

    Spiega qual è lo scopo della macro, probabilmente non si tratta dello strumento corretto da utilizzare.
    In effetti ho questo codice che genera un pdf da un documento word.
    Naturalmente sul pc dove lancio la macro è installato OpenOffice, quindi il codice funziona perfettamente perchè fa riferimento a librerie installate con il pacchetto.

    Ora la mia idea era di usare lo stesso codice da un altro pc dove non è installato OpenOffice, invocando le librerie installate sul pc dove ho OpenOffice, questo è tutto.

    Visto che il pc dove è installato OpenOffice viene usato come piccolo server ed è sempre accesso.

    Option Explicit
    Sub test_pdf()
    Dim oSM, oDesk, oDoc As Object
    Dim OpenParam(1) As Object
    Dim SaveParam(1) As Object

    Set oSM = CreateObject("com.sun.star.ServiceManager")
    Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

    Set OpenParam(0) = MakePropertyValue("Hidden", True)
    Set oDoc = oDesk.loadComponentFromURL("file:///C:/1727-1.doc", "_blank", 0, OpenParam())

    Set SaveParam(0) = MakePropertyValue("FilterName", "writer_pdf_Export")
    Call oDoc.storeToURL("file:///C:/1727-1.pdf", SaveParam())

    Set oDesk = Nothing
    Set oSM = Nothing
    End Sub
    Public Function MakePropertyValue(cName, uValue) As Object
    Dim oStruct, oServiceManager As Object
    Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set oStruct = oServiceManager.Bridge_GetStruct("com.sun.star.bea ns.PropertyValue")
    oStruct.Name = cName
    oStruct.Value = uValue
    Set MakePropertyValue = oStruct
    End Function





    ***********************
    un altra idea potrebbe essere di invocare gli oggetti OpeneOfice sull'altro pc tipo:
    Set oSM = CreateObject(\\nomepc\"com.sun.star.ServiceManager ")
    Set oDesk = oSM.createInstance(\\nomepc\"com.sun.star.frame.De sktop")
    forse dico una stupidata....
    **************************

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.