Excel e gli applicativi Microsoft Office Azioni a tempo con Userform

Login Registrati
Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
  • Autore
    Articoli
  • #17228 Score: 0 | Risposta

    Gret
    Partecipante

      Buondì a tutti,

      cercherò di spiegare al meglio il mio quesito .

      Allora: ho una UserForm (nel foglio1) popolata da textbox e button, il tutto contenuto in una multipage. Nella userform è presente il codice che minimizza la userform stessa.

      Il button serve a trasferire i dati, io compilo le textbox e clicco sul pulsante e i dati me li trasferisce nel foglio2 selezionandomelo (vuol dire che nel momento che clicco sul button, mi esce il foglio2 con i dati inseriti) l'azione che segue è la minimizzazione dell'userform per poter inserire alcuni dati sul foglio stesso, il tutto fatto manualmente (sulla barra dell'userform è presente questo trattino _ che serve a minimizzare appunto).

      Quello che vorrei fare è questo: nel momento in cui clicco sul button che mi trasferisce i dati e mi seleziona il foglio 2 (e dopo aver minimizzato la userform), vorrei avere 1 minuto per poter inserire alcuni valori, scaduto il minuto mi fa ritornare sulla userform.

      Sarebbe possibile fare questa operazione?

      Di seguito allego un file di prova.

      Ringrazio in anticipo per ogni suggerimento e buon inizio settimana  

       

      Allegati:
      You must be logged in to view attached files.
      #17232 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Poichè la form è visualizzata modeless (in assenza di parametro dopo Show si assume che sia vbModeless), significa che puoi interagire col foglio anche con la form aperta. 

        Io non pasticcerei col timer.

        Se la vista della form ti è d'intralcio, puoi nasconderla (con Hide) e impostare un evento OnKey che ti permetta di riattivarla alla pressione di una coppia di tasti predefinita (ad esempio Shift-F1 o Ctrl-A).

        #17233 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          Allego la mia proposta. I tasti chiave per la riattivazione sono Ctrl-Shift-freccia su (ma puoi cambiare se vuoi, controlla l'evento Open del Workbook). Ho eliminato il codice che inserisce il pulsante minimizza nel form, secondo me non serve.

          Allegati:
          You must be logged in to view attached files.
          #17236 Score: 0 | Risposta

          Gret
          Partecipante

            Ciao vecchio frac, grazie mille per aver risposto.

            Ho provato il tuo file in questo modo: apro l'userform dal button, inserisco i dati e clicco su inserisci ed effettivamente la form viene nascosta. Ma appena faccio la combinazione di tasti predefinita da te, non succede niente, non viene visualizzata.

            Allora ho cambiato la combinazione di tasti in questi vari modi: "^{RIGHT}", "{F3}", "^+{a}" ma non succede niente.  

            Mi sarebbe molto utile il timer in quanto una volta che scade il minuto e mi visualizza l'userform, so che devo andare avanti con i dati.

            Grazie mille per l'intervento  

            #17237 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              Gret ha scritto:

              Ma appena faccio la combinazione di tasti predefinita da te, non succede niente,

              Piuttosto strano, la combinazione di tasti si attiva all'apertura del file e funziona benissimo: non fa niente di speciale, attiva il form. Non servirebbe nemmeno premere il pulsante UForm, tanto per dire, perchè fa la stessa cosa. E chiaramente funziona con altre combinazioni di tasti.

              Comunque imbastire un timer non è difficile, solo che se io fossi l'utente mi troverei un po' sconcertato dal fatto che mi si apra un form ogni tanto 🙂

              #17238 Score: 0 | Risposta

              Gret
              Partecipante

                Fatto, ora funziona..

                Ho riaperto la cartella e con la mia combinazione di tasti la riapre.....

                Però mi sarebbe molto utile il timer per la visualizzazione dell'userform e ti spiego il motivo:

                chi inserirà i dati, può capitare che dimentichi la combinazione di tasti per visualizzare l'userform ed entra in panico e chiude tutto. Ecco perchè il timer, avendo tempo 1 minuto, una volta finito l'inserimento la userform appare e si può proseguire..

                 

                 

                #17239 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  Gret ha scritto:

                  Ho riaperto la cartella

                  Era tutto lì il punto, non lo avevo evidenziato abbastanza.

                  Sto provando a smanettare con i timer ma mi si è impallato tutto quanto. la gestione dei timer in Excel è sempre piuttosto difficoltosa.

                  #17240 Score: 0 | Risposta

                  Gret
                  Partecipante

                    Ti ringrazio per il tuo tempo prezioso che stai mettendo a disposizione.  

                    #17241 Score: 0 | Risposta

                    vecchio frac
                    Senior Moderator
                      272 pts

                      Ti allego una proposta con il timer (sul mio sistema funziona, magari su un sistema a 64 bit bisogna dichiarare PtrSafe le API che gestiscono il timer).

                      Non escludo che si verifichino dei problemi... fai sempre delle belle copie di backup 🙂

                       

                      Allegati:
                      You must be logged in to view attached files.
                      #17244 Score: 0 | Risposta

                      Gret
                      Partecipante

                        Ho dichiarato PtrSafe le API che gestiscono il timer ma mi riporta questo problema, ogni volta che minimizzo l'userform sia prima di inserire i dati che dopo, facendo uscire questo messaggio: "Type mismatch" evidenziando questa riga in questo codice..

                        Private Sub UserForm_Resize()
                        'attiva il timer ogni 3000 millisecondi
                        timerID = SetTimer(0, 0, 3000, AddressOf show_form)
                        Debug.Print "form resized, timer set " & timerID
                        End Sub

                        "AddressOf show_form" lo evidenzia in blu, mentre "Private Sub UserForm_Resize()" in giallo.

                        E scommetto che questo è uno dei problemi vero?

                        #17245 Score: 0 | Risposta

                        vecchio frac
                        Senior Moderator
                          272 pts

                          Allora proviamo la strada del timer interno di Excel... sempre più un ginepraio   

                          #17247 Score: 0 | Risposta

                          vecchio frac
                          Senior Moderator
                            272 pts

                            Comunque così, per aggiungere mistero, ho appena provato, qui a casa, col mio sistema a 64 bit (anche Office a 64 bit) e funziona senza necessità di dichiarare PtrSafe le due API del timer. Mah.

                            #17248 Score: 0 | Risposta

                            Gret
                            Partecipante

                              Non so che dirti,ho il sistema operativo Windows 10 Home a 64-bit e Office 2016 per sistemi basati su 64 bit ma se non dichiaro PtrSafe mi dà errore.  

                              Se dichiaro PtrSafe, il codice non funziona lo stesso  

                               

                               

                              #17250 Score: 1 | Risposta

                              vecchio frac
                              Senior Moderator
                                272 pts

                                Allego una nuova versione. A me gira, ma mi sembra un po' un pasticcio 😛

                                Comunque prova.

                                Allegati:
                                You must be logged in to view attached files.
                                #17253 Score: 0 | Risposta

                                Gret
                                Partecipante

                                  Sei un GRANDEEEEEEEE.. è proprio quello che cercavo!!

                                  Grazie di vero cuore.. ora me la studio per bene!

                                  Rinnovo il ringraziamento per il tempo che hai speso per me..  

                                  Buon inizio settimana e sempre in gamba  

                                Login Registrati
                                Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
                                Rispondi a: Azioni a tempo con Userform
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: