You are here:Home-Domande su Excel VBA e MACRO-Aprire File da File
Aprire File da File2018-05-19T20:53:43+02:00

Home Forum Domande su Excel VBA e MACRO Aprire File da File

Taggato: 

Visualizzazione 10 filoni di risposte
  • Autore
    Post
    • Avatarfranco56
      Partecipante
        Post totali: 19

        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

         

      • BySalvBySalv
        Amministratore del forum
          Post totali: 894

          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  :bye:

           

           

           

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • Avatarfranco56
          Partecipante
            Post totali: 19

            Ciao, tolto “Application Quit, viene comunque chiusa la form del file PRINCIPALE, per farla rimanere aperta che codice usare, grazie

          • BySalvBySalv
            Amministratore del forum
              Post totali: 894

              Ciao franco non riesco ancora a trovare il comando giusto, appena lo trovo ti faccio sapere.

              Ciao By Sal  :bye:

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

            • sidsid
              Moderatore
                Post totali: 754

                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

                • Questa risposta è stata modificata 4 anni, 2 mesi fa da sidsid.
                • Questa risposta è stata modificata 4 anni, 2 mesi fa da sidsid.
              • Avatarfranco56
                Partecipante
                  Post totali: 19

                  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.

                • sidsid
                  Moderatore
                    Post totali: 754

                    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 sidsid.
                  • Avatarfranco56
                    Partecipante
                      Post totali: 19

                      Ciao,

                      me ne scuso ma ho posto in modo errato il quesito non  specificando  che il SECONDO FILE sarebbe dovuto rimanere autonomo oltre che essere aperto/chiuso/modificato dal FILE PRINCIPALE .

                    • sidsid
                      Moderatore
                        Post totali: 754

                        Una volta aperto il secondo file, puoi farci quello che vuoi con vba.
                        Devi spiegare bene la tua esigenza; apri il secondo file per..???
                        Spiega nel dettaglio quello che vuoi ottenere

                      • Avatarfranco56
                        Partecipante
                          Post totali: 19
                        • sidsid
                          Moderatore
                            Post totali: 754

                            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

                        Visualizzazione 10 filoni di risposte
                        • Devi essere connesso per rispondere a questo topic.