Aprire un altro file mentre è attiva una macro

Anonimo
2017-12-12T09:55:47+00:00

Salve,

ho sviluppato una macro che mi consente di inserire alcuni dati in un foglio Excel e successivamente di riportarli in altri fogli a seconda delle esigenze.

Per essere sicura che tutti i dati vengano riportati correttamente, ho provato a ridurre ad icona il foglio dove è inserita la macro e ad aprire il file dove ho riportato i dati. Quello che ho notato è che, se la macro è attiva non è possibile aprire dall'esterno un altro file.

Esiste un modo che mi consenta di lavorare su altri file senza dover chiudere necessariamente la macro?

La versione Excel che utilizzo è la 2010.

Vi ringrazio anticipatamente.

Tiziana

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-12-12T21:41:44+00:00

Ciao Tiziana,

[...]

Prova a scaricare il mio file di prova

Tiziana20171212.xlsm

[...]

Per la completezza, pubblico anche il codice.

Nel modulo dell'oggetto ThisWorkbook (Questa_cartella_di_lavoro):

'=========>>

Option Explicit

'--------->>

Private Sub Workbook_Open()

    Call ShowUserform

End Sub

'<<=========

In un modulo standard:

'=========>>

Option Explicit

'--------->>

Public Sub ShowUserform()

    UserForm1.Show vbModeless

End Sub

'<<=========

Nel modulo di codice della Userform:

'=========>>

Option Explicit

'--------->>

Private Sub cbApriFile_Click()

    Dim WB As Workbook

    Dim fName As Variant

    fName = Application.GetOpenFilename( _

            "Excel Files (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", , _

            "Seleziona file ")

    If fName = "False" Then

        Exit Sub

    End If

    Set WB = Workbooks.Open(fName)

End Sub

'--------->>

Private Sub CommandButton1_Click()

    Unload Me

End Sub

'<<=========

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

11 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-12-12T15:46:16+00:00

    Ciao Tiziana.

    Purtroppo all'interno dei file ci sono solo dati sensibili, per cui non posso pubblicare il lavoro (la macro sviluppata infatti gestisce tali dati e la maggior parte delle variabili che utilizzo richiamano tali dati per permettermi di ricollegarle correttamente agli stessi).

    Capisco molto bene la necessità di non publicare dati sensibili. Comunque, mi sorprenderebbe se non fosse possibile sostituire i dati sensibili con dati non sensibili.

    Ad ogni modo, anche se non sia possibile caricare i file, non capisco i fattori che possano impedirti di publicare il codice.

    Provo però a spiegarmi in modo ancora più semplice.

    Ho bisogno di sapere se mentre è attivo il form è possibile aprire altri file dall'esterno, che non necessariamente devono essere i file in cui ho importato i dati (in questo momento io apro questi file solo per fare dei controlli).

    Non appena il codice sarà definitivo capiterà spesso che alcuni dati ci verranno inviati in altri file, per cui avrei la necessità di poterli consultare e di poter lavorare su questi dati senza dover chiudere necessariamente il form. In altri termini vorrei poter aprire questi file se necessario e passare da un documento ad un altro lasciando il form attivo. Al momento se il form è attivo non posso aprire altri file Excel poiché mi viene sempre riaperto il file con la macro attiva, chiudendo il form posso aprire tranquillamente altri file Excel.

    In assenza del codice, forse prova semplicemente ad aprire la Userform con una istruzione del genere:

                   Userform1.Show vbModeless

    In questo modo, nonostante il fatto che la Userform sia aperta, l'utente può continuare ad utilizzare comandi dall'interfaccia utente di Excel. Ad esempio, con una Userform aperta posso utilizzare il dialogo per aprire altri file:

    ===

    Regards,

    Norman

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2017-12-12T11:39:36+00:00

    Salve Norman,

    probabilmente non sono stata chiara nell'esporre il problema. Il trasferimento dei dati avviene correttamente (il codice apre il file di destinazione, riporta i dati che interessano, salva le modifiche e chiude il file).

    Succede però che certe volte mi serve di aprire il file dove ho riportato i dati per controllare se ho già effettuato il trasferimento e se ho riportato tutti i dati di interesse (questo perché il programma è ancora in una fase di sviluppo, per cui spesso mi ritrovo a dover controllare di non aver dimenticato nulla), oppure che ho bisogno di aprire un terzo file Excel. Questi file devono dunque essere aperti direttamente dalla cartella in cui si trovano e non richiamandoli dalla macro. 

    Mi chiedevo semplicemente se esiste un modo per aprire altri file senza dover necessariamente chiudere la macro.

    Spero di essere stata più chiara.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-12-12T11:22:09+00:00

    Ciao Norman,

    forse Tiziana vorrebbe poter accedere all'interfaccia utente mentre la macro è in azione.

    Qualcosa del tipo DoEvents.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-12-12T11:16:59+00:00

    Ciao Tiziana,

    ho sviluppato una macro che mi consente di inserire alcuni dati in un foglio Excel e successivamente di riportarli in altri fogli a seconda delle esigenze.

    Bene!

    Per essere sicura che tutti i dati vengano riportati correttamente, ho provato a ridurre ad icona il foglio dove è inserita la macro

    Normalmente questo non dovrebbe essere necessario!

    e ad aprire il file dove ho riportato i dati. 

    Ma non è stato aperto già il file di destinazione? Come riesci tu ad inserire dati in un file chiuso?

    Quello che ho notato è che, se la macro è attiva non è possibile aprire dall'esterno un altro file.

    Non ho ben capito. Potresti gentilmente spiegare piiù dettagliamente il procedimento?

    Esiste un modo che mi consenta di lavorare su altri file senza dover chiudere necessariamente la macro?

    Normalmente, non mi aspetterebbe un problema ma, come spesso accade, credo sia nei dettagli che il diavolo nasconde la sua coda.

    Quindi, ti chiederei gentilmente di pubblicare il codice che stai utilizzando. Ancora meglio sarebbe  di caricare i file problematico, dopo averlo depurato dei dati sensibili, su un servizio di condivisione di file, per esempio Microsoft OneDrive o DropBox, e postare un link al file in una risposta qui. Il non plus ultra sarebbe di caricare anche una copia del file di destinazione.

    Per caricare il file su Microsoft OneDrive, vedi:

    https://support.office.com/it-it/article/Condividere-file-e-cartelle-di-OneDrive-9fcc2f7d-de0c-4cec-93b0-a82024800c07

    Nel caso di DropBox, vedi:

    https://www.dropbox.com/it/help/topics/sharing_files_and_folders

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento