Tasti scelta rapida legati a macro

di il
9 risposte

Tasti scelta rapida legati a macro

Ciao, diversamente da quanto ho letto in un recente post, il mio problema è che devo legare un pulsante esistente su una maschera ad una combinazione di tasti, per la precisione CTRL+L.

Nel post ho letto e provato il codice postato sia da Osvaldo che dall'altro utente che ha risposto, ma entrambi non mi funzionano.

Il codice che prevede l'uso di una IF Keycode… non fa neppure partire la macro, mentre l'uso di autokeys non trova la function.

Il problema di Autokeys sta nel fatto che vuole una function, mentre io ho una sub, allora ho creato una function senza argoment che richiami la sub ma dice uso errato di property e non fa partire la sub.

La sub che ho è Pulsante_Click perché legata ad un evento di un pulsante.

Spero di non aver fatto troppa confusione, se avete qualche idea…

Mi va bene sia autokeys che keycode, ma preferirei la prima soluzione.

Grazie

Ciao

Ugo

9 Risposte

  • Re: Tasti scelta rapida legati a macro

    Ma dove hai applicato il codice in questione?

    E spiega meglio, questa combinazione deve funzionare “sempre” e “a prescindere” se hai la maschera aperta o no?

  • Re: Tasti scelta rapida legati a macro

    La combinazione dei tasti deve funzionare a maschera a perta, visto che il tasto che vorrei rendere “rapido” si trova su una maschera.

    Non ho capito la prima domanda: la macro AutoKeys non è che si applica, si crea, ci si abbina la combinazione dei tasti e la funzione e basta.

    Il codice Keycode l'ho inserito nella Private Sub Pulsante_Click con il sistema if keycode= CTRL+L then esegui il resto della sub.

  • Re: Tasti scelta rapida legati a macro

    Ciao.

    Prova questa soluzione

    In progettazione seleziona il pulsante per la modifica del testo.

    Scegli un carattere, ad esempio la prima lettera.

    davanti aggiungi la & commerciale.

    Esempio:
    testo pulsante : Conferma, diventa &Conferma

    Dovresti ottenere questo testo: 

    Conferma.

    Premendo la lettera C oppure ALT+c si dovrebbe attivare il pulsante.

    Se premi solo la C, ma hai il focus su una text box, naturalmente scrive la c sulla text box, invece con ALT+c, dovrebbe eseguire il codice del pulsante, senza scrivere nella text box.
    Se invece hai il focus sulla maschera o su nessuna text box, premendo C viene eseguito il codice del pulsante.

    Se vuoi impostare altre lettere per la scorciatoia, basta che anteponi la & alla lettera del testo pulsante che vuoi usare.

    Ad esempio : Conf&erma diventa Conferma e premdo la e o ALT+e si esegue il codice del pulsante

  • Re: Tasti scelta rapida legati a macro

    15/05/2023 - ugoldrake ha scritto:


    il mio problema è che devo legare un pulsante esistente su una maschera ad una combinazione di tasti, per la precisione CTRL+L.

    15/05/2023 - ugoldrake ha scritto:


    La combinazione dei tasti deve funzionare a maschera a perta, visto che il tasto che vorrei rendere “rapido” si trova su una maschera.

    Io ci trovo un po' di incongruenza logica. A cosa ti serve una combinazione tasti se il TuoPulsante ce l'hai già lì a portata di mano? 
    Prendo alla lettera il fatto di voler avere 2 tipi di comandi che fanno la stessa cosa. Tanto vale ripetere lo stesso set di azioni sfruttando nel caso della combinazione tasti la macro AutoKeys.

  • Re: Tasti scelta rapida legati a macro

    Grazie delle risposte.

    fratac quello che proponiriguarda un menù a discesa che non ho nella maschera. Ad ogni modo mi serve una combinazione di scelta rapida, non un'alternativa.

    Osvaldo: non si tratta di incongruenza ma di velocizzare un'azione. Il mio punto di vista considera che con la tastiera sono molto veloce, più che con il mouse che deve viaggiare per tutto lo schermo in cerca di pulsanti distanti tra di loro.

    E proprio per questo motivo preferirei l'AutoKeys, ma non mi riesce di farla girare correttamente.

    Il pulsante fisico sulla maschera mi serve per le consuete operazioni di caricamento dati, ed il tasto di scelta rapida è utile quando devo “sfogliare” il database e far partire l'azione ad ogni cambio record: immagina il mouse che va sulla freccia del record successivo, pulsante con macro, record successivo, pulsante con macro, ecc… è più pratico lasciar eil mouse sulla freccia del recordset e mettere la macro sotto tasto di scelta rapida, ti pare?

    Hai suggerimenti su come fare per farla andare?

    Grazie, ciao

    Ugo

  • Re: Tasti scelta rapida legati a macro

    Il suggerimento che ti ho dato riguarda i pulsanti e non i menù. 

    Ma la via rapida ti serve per attivare un pulsante o un menù ?

    Inoltre, visto che hai scritto del codice, sarebbe il caso che tu lo postassi. magari c è una svista.

  • Re: Tasti scelta rapida legati a macro

    15/05/2023 - ugoldrake ha scritto:


    Osvaldo: non si tratta di incongruenza ma di velocizzare un'azione. Il mio punto di vista considera che con la tastiera sono molto veloce, più che con il mouse che deve viaggiare per tutto lo schermo in cerca di pulsanti distanti tra di loro.

    D'accordo. Le mie opzioni sono:

    A) Crea la macro AutoKeys e replica le stesse azioni VBA del Pulsante…usando le istruzioni macro corrispondenti, sempre che siano compatibili.

    B) Trasforma la Private Sub associata al Pulsante in Public Sub in un Modulo standard. Dal Pulsante lo chiami con una Call. Con la macro AutoKeys associa l'azione EseguiCodice.

    C) Se non funzionano le due opzioni precedenti, mostra il codice associato al clic del Pulsante.

  • Re: Tasti scelta rapida legati a macro

    15/05/2023 - fratac ha scritto:


    Il suggerimento che ti ho dato riguarda i pulsanti e non i menù. 

    Ma la via rapida ti serve per attivare un pulsante o un menù ?

    Inoltre, visto che hai scritto del codice, sarebbe il caso che tu lo postassi. magari c è una svista.

    Già cancellato, visto che non funzionava: era un adattamento del codice dell'altro post.

    Riguarda un pulsante che si trova su una maschera e vorrei un tasto di scelta rapida da poter eseguire il codice che ha dietro.

    Il codice originale associato al pulsante è il seguente:

        If Len(Form_mElencoFoto.txtLatLon.Value) > 0 Then
       For c = 0 To Len(Form_mElencoFoto.txtLatLon.Value)
           If Right(Left(Form_mElencoFoto.txtLatLon.Value, c), 1) = "," Then
               Lat = Replace(Left(Form_mElencoFoto.txtLatLon.Value, c - 1), ".", ",")
               Lon = Replace(Right(Form_mElencoFoto.txtLatLon.Value, Len(Form_mElencoFoto.txtLatLon.Value) - c), ".", ",")
           End If
       Next c
       End If
    

    Praticamente in una casella di testo incollo 2 coordinate che vengono divise tra Lat e Lon ed inserite separatamente nei 2 campi corrispondenti.

    A questo avevo aggiunto un IF iniziale del tipo if keycode= vbkeyL = (acshift + ...) then

    Ora non ricordo com'era di preciso, dovrei recuperare il post. ma come ho detto non funzionava quindi l'ho cancellato.

    15/05/2023 - OsvaldoLaviosa ha scritto:


    15/05/2023 - ugoldrake ha scritto:


    Osvaldo: non si tratta di incongruenza ma di velocizzare un'azione. Il mio punto di vista considera che con la tastiera sono molto veloce, più che con il mouse che deve viaggiare per tutto lo schermo in cerca di pulsanti distanti tra di loro.

    D'accordo. Le mie opzioni sono:

    A) Crea la macro AutoKeys e replica le stesse azioni VBA del Pulsante…usando le istruzioni macro corrispondenti, sempre che siano compatibili.

    B) Trasforma la Private Sub associata al Pulsante in Public Sub in un Modulo standard. Dal Pulsante lo chiami con una Call. Con la macro AutoKeys associa l'azione EseguiCodice.

    C) Se non funzionano le due opzioni precedenti, mostra il codice associato al clic del Pulsante.

    Provo la B perché la A non sono capace.

    Grazie

    Ciao

    Ugo

  • Re: Tasti scelta rapida legati a macro

    Appunto. Riguarda il pulsante e come già ti ho detto, già dal vb4 la via più veloce per creare short per i pulsanti è quella che ti ho descritto.

    E comunque non intendevo il codice che devi far eseguir, ma come hai scritto   il codice per imtercettare i tasti per la scorciatoia.

Devi accedere o registrarti per scrivere nel forum
9 risposte