Sviluppare funzionalita su Microsoft Office con VBA Sub Sub Worksheet_Activate() non viene eseguita da attivazione da VBA

Login Registrati
Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)
  • Autore
    Articoli
  • #55172 Score: 0

    ABRAMO48
    Partecipante
      1 pt

      Buongiorno,

      un foglio, chiamiamolo AA, all'interno di una cartella contiene una sub Worksheet_Activate().

      Ora se sono in un altro foglio della cartella, chiamiamolo BB,  e clicco sul foglio A la macro prevista per l'evento Activate nel foglio A viene eseguita regolarmente.

      Ma durante l'esecuzione di una macro  in VBA, se è attivo il foglio BB ed eseguo il comando AA.Activate la macro prevista per l'evento Activate nel foglio AA non viene eseguita.

      ????

      Non capisco perchè. Dove sbaglio?

      Grazie carissimi!

       

      #55173 Score: 0

      ABRAMO48
      Partecipante
        1 pt

        Scusate, in alcuni casi il foglio AA l'ho chiamato A.

        #55174 Score: 0

        ABRAMO48
        Partecipante
          1 pt

          E non funziona nemmeno la macro prevista nel foglio BB per Worksheet_Deactivate()

          #55176 Score: 0

          LukeReds
          Partecipante
            20 pts

            ciao,

            se ho capito correttamente.... "durante l'esecuzione di una macro  in VBA" non puoi far partire in parallelo un'altra macro

            #55177 Score: 0

            ABRAMO48
            Partecipante
              1 pt

              Ah! In effetti è così, non ci avevo pensato! Non è come una call, l'esecuzione di una macro "evento", in questo caso: Activate e Deactivate,  non sarebbe come una call ma, in effetti, una macro (anzi due)  eseguita in parallelo ...

              mmm ...

              #55179 Score: 0

              Raffaele53
              Partecipante
                24 pts

                >>>Ma durante l'esecuzione di una macro in VBA
                Strano, servirebbe vedere il codice per capire, comunque basta che all'interno ci sia un "Application.EnableEvents = False" che non funzionerà mai. Comunque, se racchiudi il codice di Sub Worksheet_Activate() in una nuova Sub Activa() e in Sub Worksheet_Activate() ci metti solo "Call Activa". Ora dentro l'altro codice ci metti ancora "Call Activa"

                #55182 Score: 0

                ABRAMO48
                Partecipante
                  1 pt

                  e, in effetti è così che ho fatto. Praticamente ho ripetuto le poche istruzioni presenti nella Worksheet_Activate() e nella Worksheet_Deactivate() nel codice che eseguiva la AA.Activate (e di conseguenza BB.Deactivate). Certo se le istruzioni erano molte occorreva fare una Sub Activa (e una Sub Deactiva) e richiamarle da una call.

                  Perfetto!

                  Comunque ora controllo che non ci sia un Application.EnableEvents = False da qualche parte ..

                  Grazie carissimi!

                   

                   

                   

                Login Registrati
                Stai vedendo 7 articoli - dal 1 a 7 (di 7 totali)

                Devi essere loggato per rispondere a questa discussione.