Spostamento guidato col tasto "Invio" (Enter). - pagina vista: volte Sappiamo che Excel consente di modificare la direzione da seguire alla pressione del tasto Invio. Di default lo spostamento segue la direzione "giu", cioè viene selezionata la cella sottostante la precedente, ma dal menù Strumenti/Opzioni/Modifica è possibile selezionare Direzione alla voce "Sposta la selezione dopo invio", scegliendo un'opzione a noi confacente. Ovviamente l'impostazione scelta verrà mantenuta anche alla successiva riapertura di Excel, e fino ad una nuova impostazione. A volte però gradiremmo poter disporre di selezioni "mirate", in particolare quando, "navigando" tra le celle di una tabella dati, vorremmo spostarci a destra e poi in basso, in modo da poter scorrere colonne e righe nell'area dati, in sequenza, una cella dopo l'altra. Esemplificheremo quindi il caso in cui ci si voglia spostare di cella in cella verso destra, sulla stessa riga, con spostamento alla cella iniziale della riga successiva una volta raggiunto l'estremo colonna, e proseguimento della sequenza, fino all'ultima cella dell'intervallo. Potrebbe essere il caso di una tabella dati nei quali manualmente dovremo variare i valori contenuti nelle celle. Tanto per capirci, una cosa del genere: Per poter agire su un preciso intervallo (la nostra tabella dati) abbiamo bisogno di:
Per definire l'intervallo potremo impostare la zona dati con la classica sintassi Sheets(X).Range("rifcellainiziale:rifcellafinale"), oppure assegnare un "nome" all'area dati e utilizzare in "nome" al posto dei riferimenti cella, così: Sheets(X).Range("nome"). Per aree dati non fisse, o comunque variabili (inserimento nuove righe o colonne dati, cancellazione), usare un "nome" può rappresentare una valida soluzione in quanto sarà possibile ridefinire un nuovo intervallo senza bisogno di variare le istruzioni nel codice (vedi articolo "Assegnare nomi a intervalli"). Per quanto riguarda l'evento, sceglieremo l'evento Worksheet_Change, il più consono all'esempio proposto. Tra l'altro, l'argomento Target della funzione, ci consente di identificare la cella attiva che ha subito un cambiamento, e ci fornisce quindi le coordinate di questa cella (riga, colonna). Per ottenere uno spostamento guidato della selezione, si possono seguire diverse strade; io presento una soluzione che consente di, una volta definito l'intervallo su cui agire, ottenere in automatico i riferimenti alla riga e alla colonna della cella iniziale dell'intervallo e a quella finale. Usiamo quindi quattro variabili che ci consentono di valutare la posizione della cella Target usata, all'interno dell'intervallo. Istruiamo quindi un Select Case che si occuperà di valutare in quale posizione il Target si trova e di eseguire le istruzioni opportune per spostarsi a destra rispetto al Target, oppure passare alla prima cella della riga successiva, prima colonna. Con il Target sull'ultima cella dell'intervallo faremo spostare la selezione alla prima cella dell'intervallo. Le istruzioni ovviamente agiranno solo se saremo all'interno dell'intervallo e solo se avremo effettuato una variazione in una cella, negli altri casi lo spostamento della selezione avverrà secondo le impostazioni di default. Questa la routine:
prelevato sul sito www.ennius.altervista.org |