sincronizzare macro



  • sincronizzare macro
    di ludagi data: 20/12/2017 08:46:18

    ho diversi file xls

    ogni file ha una macro

    tutte le macro usano il metodo ontime per rilanciarsi

    esiste un metodo per sincronizzare i file in modo che il metodo ontime agisca su tutte le macro dei file ?

    grazie



  • sincronizzare macro
    di ludagi data: 20/12/2017 08:46:35

    ho diversi file xls

    ogni file ha una macro

    tutte le macro usano il metodo ontime per rilanciarsi

    esiste un metodo per sincronizzare i file in modo che il metodo ontime agisca su tutte le macro dei file ?

    grazie




  • di Zer0Kelvin data: 20/12/2017 13:57:02

    Ciao.
    Puoi temporizzare una macro che lanci tutte le altre.



  • di ludagi data: 20/12/2017 15:05:21

    sono file diversi

    puoi mettere una macro di esempio ?



  • di Zer0Kelvin data: 20/12/2017 23:26:48

    Come da esempio riportato sotto, per lanciare macro che si trovano in file diversi, puoi usare Application.Run con la sintassi che vedi sotto, cioè Nomefile-punto esclamativo- nomemacro, racchiusi fra virgolette.
    Utilizza OnTime per temporizzare CallMacros che a sua volta si occuperà di lanciare tutte le macro necessarie.
    Se il nome del file contiene degli spazi, deve essere racchiuso fra apici (il carattere sulla tastiera sotto al punto interrogativo), 
     
    Public Sub RunMacros()
        Application.Run "File1.xlsx!Macro1"
        Application.Run "File2.xlsx!Macro2"
        'eccetera
    End Sub
    ''se ci sono degli spazi nei nomi dei files
    Public Sub RunMacros()
        Application.Run "'File 1.xlsx'!Macro1"
        Application.Run "'File 2.xlsx'!Macro2"
        'eccetera
    End Sub



  • di ludagi data: 21/12/2017 09:44:48

    grazie della macro ... ma la mia domanda comprendeva che le macro devono essere lanciate ogni (esempio) 10 secondi tutte ...per cui cosa aggiungere alla tua macro ?

    grazie



  • di Zer0Kelvin data: 21/12/2017 18:58:17

    Dal momento che usi gia Application.OnTime, pensavo ci arrivassi da solo.
    Devi eliminare tutti gli ontime dalle altre macro ed inserirne uno nella macro che lancia tutte le altre 
     
    Public Sub RunMacros()
        Application.OnTime Now + TimeValue("00:00:10"), "RunMacros"
        Application.Run "File1.xlsx!Macro1"
        Application.Run "File2.xlsx!Macro2"
        'eccetera
    End Sub