Richiamare macro da workbookscount



  • Richiamare macro da workbooks.count
    di giabon data: 21/05/2014 11:05:48

    Buongiorno a tutti,
    ho cercato un po' di soluzioni per richiamare una macro che ho su un file excel (il cui nome cambia ogni settimana in modo imprevedibile) e che in genere richiamo con il comando workbooks.count perchè lo apro come ultimo file, senza ricorrere al personal.xls

    i comandi che ho trovato sono:
    Application.Run "nomefile.xls!nomemacro" oppure
    Call nomefoglio!nomemacro

    ma non mettendo il nome del file non funziona, anche avendo messo public davanti alla macro da richiamare...
    Qualcuno mi potrebbe dare una mano?
    Grazie in anticipo
    Giab
     
    Sub avviamacro()
    Workbooks(Workbooks.Count).Activate
    Application.Run nomemacro
    End Sub



  • di lepat (utente non iscritto) data: 21/05/2014 11:38:17

    spiega meglio il contesto e l'obiettivo, io non ho capito niente



  • di giabon data: 21/05/2014 12:05:30

    Mi scuso, ci riprovo

    Mi trovo sul file dati.xls e vorrei creare una macro per richiamare la macro "azione" presente nel file pippo.xls

    il comando sarebbe
    Application.Run "dati.xls!azione"

    il mio problema è che il file dati.xls cambia ogni settimana di nome e quindi non posso citarlo nel comando application.run

    Non posso inoltre salvare la macro "azione" in personal.xls perchè i file girano su altri computer a cui non posso chiedere di inserire la macro nel loro personal.xls.

    Spero di esser stato più chiaro, grazie lepat per la tua attenzione
    Giab




  • di Lucas87 data: 21/05/2014 12:12:22

    Ciao
    1 -Non capisco il senso di avviare una macro che si trova su un altro file...
    Scrivi la macro in questione su quella principale e cambi i riferimenti al file su cui lavora.
    2 -Non puoi lavorare su un file di cui non conosci il nome. Se il nome del file avesse una parte fissa e diversa dagli altri file credo si potrebbero scorrere i file aperti (o anche quelli chiusi in una cartella) e cercare quello che ha nel nome la parte fissa:
    file1
    file2
    file3
    filePippo
    Cerco il file che nel nome ha Pippo e agisco su quello



  • di lepat (utente non iscritto) data: 21/05/2014 12:22:34

    il file di cui non conosci il nome è già aperto ? chi lo apre ? sono aperti soltanto lui e dati.xls ?



  • di giabon (utente non iscritto) data: 21/05/2014 12:37:06

    @lepat:
    il file di cui non conosco il nome è già aperto da chi apre il file dati e lo apre come utlimo, per cui riesco sempre ad identificarlo bene utilizzando il comando

    Workbooks(Workbooks.Count).Activate

    @Lucas87
    riscrivere la macro del file che cambia nome sul file principale mi comporta in primo luogo il problema che ad ogni cambio della macro devo cambiarla in due posti diversi e poi che nella macro ci sono comandi che non saprei facilmente "adattare" come ad esempio la creazione di nomi
    non vi sono parti fisse nel nome del file, a volte cambia un rifermento di data a volte viene riscritto il nome in modo diverso

    Grazie per l'attenzione



  • di lepat (utente non iscritto) data: 21/05/2014 16:18:57

    prova così
     
    Sub avviamacro()
    Workbooks(Workbooks.Count).Activate
    nn = ActiveWorkbook.Name
    Application.Run "'" & nn & "'!nomemacro"
    End Sub



  • di giabon data: 22/05/2014 02:10:24

    Mitico lepat! Era proprio quello che cercavo! Grazie ancora una volta