Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

[Excel 2007]- Concatenare lavoro nei file Opzioni
aetio
Inviato: Friday, October 04, 2013 11:05:51 AM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
vorrei potere concatenare in alcuni file il lavoro svolto in essi dalle relative macro, chiudendo di volta in volta il file precedente.
Supponendo 2 file di tipo .xlsm nominati genericamente Workbook1, 2
terminati i lavori dell'ultima macro del Workbook1 le inserisco in coda il codice
Workbooks.Open Filename:= _
"C:\percorso\Workbook2.xlsm"

in modo da aprire il Workbook2 dopodiché, in esso, con una Private Sub Workbook_Open che si autoesegue all'apertura del file comando prima la chiusura, senza salvataggio delle modifiche, del Workbook1 e poi l'esecuzione di una macro nel Workbook2 rimasto aperto. Il problema è che viene eseguito tutto, eccetto la macro chiamata alla fine.
Qual'è la soluzione? Dove sbaglio?
Grazie assai, buona giornata
eZio
Sponsor
Inviato: Friday, October 04, 2013 11:05:51 AM

 
a10n11
Inviato: Friday, October 04, 2013 12:44:43 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
. Il problema è che viene eseguito tutto, eccetto la macro chiamata alla fine.
Qual'è la soluzione? Dove sbaglio?
Grazie assai, buona giornata
eZio

Salve
non ho capito quale macro non ti esegue alla fine.
saluti
Giap

aetio
Inviato: Friday, October 04, 2013 2:09:19 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
chiedo scusa per il mio solito "ermetismo serpeggiante"... :-))
La sequenza è questa:
prima dell'End Sub dell'ultima macro eseguita nel file Workbook1 ho dato istruzione di aprire il file Workbook2
Workbooks.Open Filename:= _
"C:\percorso\Workbook2.xlsm"

All'apertura di Workbook2 si esegue la sub
Private Sub Workbook_Open()
Workbooks("Workbook1.xlsm").Activate
ActiveWorkbook.Close savechanges:=False
Workbooks("Workbook2.xlsm").Activate
Call Macro1
End Sub

La sequenza viene eseguita regolarmente, ma non viene eseguita la Macro1
Non viene restituito nessun Errore, e per eseguire la Macro1 devo procedere manualmente dal menù Macro > Esegui, ma il mio intento è quello di automatizzare la sequenza operativa in modo che ogni file passi la staffetta al successivo, che immediatamente provvederà alla sua chiusura e al proseguimento dei lavori...
Grazie assai, buon pomeriggio
eZio
a10n11
Inviato: Friday, October 04, 2013 7:22:19 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
aetio ha scritto:
Ciao,
chiedo scusa per il mio solito "ermetismo serpeggiante"... :-))
La sequenza è questa:
prima dell'End Sub dell'ultima macro eseguita nel file Workbook1 ho dato istruzione di aprire il file Workbook2
Workbooks.Open Filename:= _
"C:\percorso\Workbook2.xlsm"

All'apertura di Workbook2 si esegue la sub
Private Sub Workbook_Open()
Workbooks("Workbook1.xlsm").Activate
ActiveWorkbook.Close savechanges:=False
Workbooks("Workbook2.xlsm").Activate
Call Macro1
End Sub

La sequenza viene eseguita regolarmente, ma non viene eseguita la Macro1
Non viene restituito nessun Errore, e per eseguire la Macro1 devo procedere manualmente dal menù Macro > Esegui, ma il mio intento è quello di automatizzare la sequenza operativa in modo che ogni file passi la staffetta al successivo, che immediatamente provvederà alla sua chiusura e al proseguimento dei lavori...
Grazie assai, buon pomeriggio
eZio


Salve
è una questione di logica.
la macro che concatena tutto il processo la lanci dal workbook1
se nell'evento open la prima istruzione è quella di chiudere la cartella che sta eseguendo la macro, questa si ferma non appena l'istruzione viene eseguita.
dovrai cambiare in questo modo:

Private Sub Workbook_Open()
Call Macro1
End Sub

mentre la macro descritta nel modulo :


Sub macro1()

With ActiveWorkbook
' quello che deve fare la macro
End With
' poi chiudi la cartella
Workbooks("Workbook1.xlsm").Close SaveChanges:=False

End Sub

saluti
Giap



aetio
Inviato: Friday, October 04, 2013 8:51:47 PM

Rank: AiutAmico

Iscritto dal : 5/10/2010
Posts: 723
Ciao,
seguendo le tue indicazioni tutto funziona perfettamente... ;-))
a10n11 ha scritto:
la macro che concatena tutto il processo la lanci dal workbook1
se nell'evento open la prima istruzione è quella di chiudere la cartella che sta eseguendo la macro, questa si ferma non appena l'istruzione viene eseguita.

la sub dell'evento open è nel secondo file, quello che è stato appena aperto, mentre la cartella da chiudere è il primo file che ha già "passato la palla" al secondo, avendo terminato di fatto tutti i lavori non appena si è aperto il secondo file.
Grazie assai, buona serata
eZio.
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.