Home › Forum › Domande su Excel VBA e MACRO › Aprire File da File
Taggato: Userform
-
AutorePost
-
-
Salve, devo aprire da form (ShowModal=True) del file PRINCIPALE un file CLIENTI che all’apertura attiva una seconda form e poi chiuderlo sempre mantenendo a schermo la form del file PRINCIPALE, purtroppo a me si chiude tutto, grazie.
http://www.filedropper.com/clienti_1
http://www.filedropper.com/principale
-
Ciao Franco, non devi usare “Application.Quit” in quanto chiude Excel ecco perche chiude tutto, ma devi usare “ActiveWorkbook.Close”
questo nell’userform dei Clienti
Ciao By Sal
Ciao By Sal (8-)
se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie -
Ciao
Per lasciare attiva la prima form, l’esecuzione di vba deve tornare sul primo file; se chiudi il secondo file con un codice che sta sul secondo file, l’esecuzione di vba viene interrotta, e la form principale si chiude.
Per evitare questo, il secondo file va chiuso dal primo, esattamente dal codice che sta sul pulsante che apre il secondo file.Private Sub cmbClienti_Click() Dim wb2 As Workbook 'assegno un riferimento al secondo file Set wb2 = Workbooks.Open("C:\Users\Francesco\DeskTop\aprifile\Clienti.xlsm") 'ATTENZIONE: SE CHIUDI IL FILE SECONDARIO DAL CODICE CHE STA SUL SECONDO FILE, L'ESECUZIONE DI VBA TERMINA QUI !!! 'se invece vuoi proseguire ti basta chiudere il secondo form, e vba continua l'esecuzione su questa macro 'lo chiudo salvandolo; se non vuoi salvarlo metti "False" wb2.Close True 'distruggo il riferimento all'oggettoi creato Set wb2 = Nothing End Sub
Nel codice del pulsante ChiudiClienti che sta sella form del secondo file, devi soltanto dare il comando che chiude la form secondaria
Private Sub CommandButton1_Click() Unload Me End Sub
In questo modo l’esecuzione torna sul file principale che chiude il file secondario
Spero sia chiaro
-
Ciao,
codice testato e funzionante se il SECONDO FILE viene aperto e chiuso dal PRIMO come giustamente hai fatto notare ma se si lavora direttamente sul SECONDO FILE ” unload me” non è sufficiente per chiudere l’applicazione.
Ho fatto delle prove ma senza risultato, grazie.
-
Forse mi sono spiegato male: non è che “non è sufficiente”…NON E’ POSSIBILE.
Per continuare l’esecuzione del codice, il secondo file non devi chiuderlo da se stesso, altrimenti vba rimane imprigionato al suo interno..l’ossigeno si esaurisce e lui muore all’istante. Spero con questa metafora di aver spiegato meglio quello che succede.Scusa ma non capisco l’esigenza di chiuderlo dal secondo, ripeto..impossibile; ma nel caso non lo fosse, che altre operazioni faresti sul secondo file, visto che si chiude?
Una routine di esempio per farti capire
Sub test() MsgBox "questo è il primo messaggio" ThisWorkbook.Close True MsgBox "questo è il secondo messaggio" End Sub
come vedi ci sono 2 messaggi intervallati dalla chiusura del file; il secondo messaggio non apparirà mai a video perchè vba muore al momento di chiuidere il file. Spero sia chiaro
-
Questa risposta è stata modificata 4 anni, 2 mesi fa da
sid.
-
Questa risposta è stata modificata 4 anni, 2 mesi fa da
-
-
Ciao,
codice testato e funzionante se il SECONDO FILE viene aperto e chiuso dal PRIMO come giustamente hai fatto notare ma se si lavora direttamente sul SECONDO FILE ” unload me” non è sufficiente per chiudere l’applicazione.
Ho fatto delle prove ma senza risultato, grazie.
Certo che è così….se lavori da codice puoi chiudere il secondo file solo dal primo; se invece stai lavorando “solo” con il secondo file, dopo che la form è chiusa non devi far altro che chiudere manualmente il file con la X rossa in alto a destra
-
-
AutorePost
- Devi essere connesso per rispondere a questo topic.