Sviluppare funzionalita su Microsoft Office con VBA Eseguire subroutine alla pressione di un tasto

Login Registrati
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #15303 Risposta

    lorecim88
    Partecipante
      1 pt

      Buongiorno a tutti,

      non riesco a far eseguire una subroutine specifica (es. Sub Commandbutton1_Click) alla pressione del tasto END durante l'esecuzione della Userform (pertanto escludo Onkey che mi pare funzioni solo sul Workbook) a prescindere dal fatto che vi sia il focus uno specifico oggetto (pertanto escludendo Keypress, sempre se le mie considerazioni sono corrette).

      Ringrazio in anticipo per le risposte.

       

      #15306 Risposta
      Marius44
      Marius44
      Moderatore
      • Sfida #4
        8 pts

        Ciao

        Il consiglio migliore che mi sento di darti è: allega il file, senza dati sensibili, e con i pulsanti ed il relativo codice.

         

        Ciao,

        Mario

        #15325 Risposta

        vecchio frac
        Senior Moderator
        • Sfida #1
          135 pts

          Se hai dei controlli pulsante o textbox sul form questi assorbono i tasti inviati al form.

          Prova a impostare la loro proprietà TabStop a False per vedere se riesci a intercettare gli eventi di tastiera sul form. 

          #15352 Risposta

          Jimmy
          Partecipante

            Ciao, io avevo un problema simile (volevo far comparire un form di opzioni riservate solamente se facevi doppio click in un determinato punto di un altro forum e con la pressione contemporanea di CTRL+SHIFT) e l’ho risolto con una API di Windows e pochissime righe di codice. Ti copio qui sotto la dichiarazione:

            Private Declare PtrSafe Function GetAsyncKeyState Lib "user32" _
                        (ByVal vKey As Long) As Integer

            inoltre, a questo link puoi trovare altre info:

            https://wellsr.com/vba/2017/excel/GetAsyncKeyState-vba-to-wait-until-a-key-is-pressed/

            In pratica, la chiamata della routine GETASYNCKEYSTATE ti recupera il tasto premuto e a quel punto lo vai a confrontare con quello che hai deciso te ed in caso affermativo fa partire la tua subroutine specifica.

            #15361 Risposta

            vecchio frac
            Senior Moderator
            • Sfida #1
              135 pts

              Questo è sicuramente uno spunto interessante. Però mi piacerebbe vederlo applicato per intercettare un tasto premuto dentro un userform. Si potrebbe infine pensare ad utilizzare Application.OnKey.

            Login Registrati
            Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
            Rispondi a: Eseguire subroutine alla pressione di un tasto
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni:



            vecchio frac - 1916 risposte

            albatros54
            albatros54 - 610 risposte

            patel
            patel - 450 risposte

            Marius44
            Marius44 - 390 risposte

            Luca73
            Luca73 - 356 risposte