› Sviluppare funzionalita su Microsoft Office con VBA › Tasto INVIO / ENTER
-
AutoreArticoli
-
Ciao a tutti.
Un quesito per chi è sicuramente più esperto di me. Se l'argomento è già stato trattato in un'altra discussione, mi scuso anticipatamente e chiedo di riceverne le coordinate.
Avrei bisogno di eseguire alcuni comandi all'atto della digitazione del tasto INVIO o ENTER (è indifferente se da tastierino numerico) a condizione che ciò avvenga in un determinato foglio.
Es. è attivo nel foglio "Foglio 1"; digitando INVIO o ENTER deve apparire una MSGBOX. Se è attivo un altro foglio qualsiasi del book in caso di digitazione del tasto INVIO/ENTER non deve accadere nulla.
Ho provato a verificare l'esistenza di un evento (intendo ad es, Private Sub Worksheet_BeforeDoubleClick etc.) da inserire nel foglio in questione e che facesse al caso ma non ho trovato nulla.
Grazie mille.
Alberto.
Ciao
Prova con l'Evento Worksheet_Change del Foglio interessato dando come parametri la cella o le celle che variano.
Ciao,
Mario
Grazie Mario.
E se non variasse nulla?
Nel foglio attivo digito semplicemente INVIO e vorrei apparisse una MSGBOX.
Ciao.
Ciao Se premi invio comunque o confermi un cambiamento dopo essere entarto in modalita modifica cella (F2) (anche se non hai cambiato niente) e scateni Worksheet_Change oppure cambi la selezione scatenando Worksheet_SelectionChange
Ciao Luca
Luca,
se ho ben capito inseriresti i 2 eventi (Change o SelectionChange) nel codice del foglio interessato.
Giusto?
Grazie.
Ciao Purtoppo si in quanto la pressione di enter scatena due eventi diversi in dipendenza da dove sei
Attenzione che però ci sono altre azioni che scatenano gli stessi eventi.Ad esempio il selection change viene scatenato anche dal mouse, dalle frecce,....
Perche vuoi proprio invio?
ciao
una procedura potrebbe essere questa
da inserire in un modulo
Sub Disabilita() Application.OnKey "{ENTER}", "M_box" '' tastierino numerico Application.OnKey "~", "M_box" '' Tastiera End Sub Sub Abilita() Application.OnKey "{ENTER}" Application.OnKey "~" End Sub Sub M_box() MsgBox "Tastierino Disabilitato" End Sub nel foglio1 Private Sub Worksheet_Activate() Call Disabilita End Sub Foglio2 Private Sub Worksheet_Activate() Call Abilita End Sub
allego il file di prova
ciao
Allegati:
You must be logged in to view attached files.Innanzitutto grazie a tutti per il contributo.
Devo ammettere che è SEMPRE opportuno (necessario) allegare un file d'esempio per chiarire meglio l'esigenza ed agevolare la scelta delle soluzioni/suggerimenti ricevuti (senza far perdere tempo ed evitando una proliferazione di risposte).
Dunque.
Nel foglio ESIGENZA ho sintetizzato (spero con chiarezza) cosa sto richiedendo.
Essendo abbastanza alle prime armi di programmazione VBA, vi chiedo la cortesia di indicarmi errori (o ottimizzazione) di codice che sicuramente rileverete.
Non modificherei per ora logica, criterio etc. di funzionamento del progetto.
Per ora è tutto.
Grazie mille.
Allegati:
You must be logged in to view attached files. -
AutoreArticoli