Excel: evidenziare una riga scorrendo con le frecce

EXCEL come evidenziare una riga scorrendo con le frecce (VBA)

Excel: scopriamo qual è il codice VBA per evidenziare la riga scorrendo su e giù con le frecce della tastiera

In questo tutorial volevo rispondere a questa domanda: “Potresti dirmi come posso fare a evidenziare la riga scorrendo su e giù con le frecce?”

Per arrivare a questo tipo di risultato dovremo utilizzare il codice Visual Basic, quindi andremo a descrivere una serie di righe di comando molto facili.

Vi ricordo che potete scaricare il file della lezione compilato cliccando sul bottone rosso.

N.B

Visto che parliamo di colori, ho anche posizionato una tabella con una serie di colori con i relativi codici che potrete utilizzare a  vostro piacimento.

Mettiamoci subito al lavoro e andiamo a creare un nuovo file con dei dati in modo da avere qualche cosa su cui lavorare (anche se in realtà non non preclude assolutamente la buona riuscita dell’esercizio).

Possiamo  cominciare con il descrivere la nostra macro (ovvero il nostro elenco di azioni) entrando nell’editor Visual Basic; prima di farlo però andrò a salvare il file dal menu file salva con nome, scegliendo come formato, cartella di lavoro con attivazione macro (altrimenti non  funzionerà un bel niente). Ora possiamo dare la conferma e salvare.

Entriamo nel nostro editor Visual  premendo Alt + F11 e da qui andiamo a scegliere dove dovrà lavorare la nostra azione (foglio 1, foglio 2,  foglio 3 oppure nell’intera cartella di lavoro). Per effettuare la vostra scelta non dovete far altro che fare doppio clic sull’etichetta.

A questo indichiamo l’oggetto della nostra macro: workbook; poi scegliamo l’evento che sostanzialmente determinerà quando verrà scatenata la nostra  azione: SheetSelectionChange (quindi sarà possibile eseguire automaticamente il codice vba ogni  volta  che andremo a effettuare una nuova selezione nel foglio di lavoro, cioè tutte le volte che andremo a cambiare riga con il cursore o con la freccetta).

Cancelliamo le prime due righe che no ci servono più e andiamo a descrivere la nostra macro inserendo il seguente codice.  

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 'Esegue il codice automaticamente a una nuova selezione'

Cells.Interior.ColorIndex = xlNone 'Nessun colore per il fondino'

Target.EntireRow.Interior.ColorIndex = 43 'Assegno il colore all'intera riga'

Target.Interior.ColorIndex = 43 'Assegno il colore alla cella'



End Sub
Excel: codici colori VBA

Un volta incollato il codice potete salvare, uscire dall’editor per tornare al vostro foglio di lavoro.

Ora, quando andate a cliccare o quando andrete a  spostarvi con le frecce, la vostra riga verrà evidenziata e colorata.

Guarda il video tutorial della lezione: evidenziare una riga scorrendo con le frecce

Spero di aver risposto alla domanda e che la lezione  ti sia stata utile. Se sì lasciami un commento (anche per eventuali dubbi e  soprattutto per dirmi che sei passato da me) 🥰

Qui trovi la mia pagina Facebook, se pensi che me lo meriti, supportarmi lasciandomi una recensione o consigliando la pagina, te ne sarò grata! 🙏 🙏 🙏

Seguimi anche su Instagram e Tik Tok per altri contenuti, mi trovi come @graficaeformazione

Grazie mille per studiare con me, buon lavoro! ❤

Commenti

22 risposte a “Excel: evidenziare una riga scorrendo con le frecce”

  1. Avatar femilix
    femilix

    Grazie della lezione, molto utile. Ho una domanda:
    una volta impostata la macro mi sparisce tutte le celle che ho precedentemente colorato (colore riempimento) c’è un sistema per mantenerle ?

    grazie

    Marco

    1. Avatar francesca

      Ciao Marco, devi ripristinare i colori con VBA, ho risposto alla tua domanda in questo altro video tutorial: https://www.graficaeformazione.com/formazione/sfondo-vba/

      Il codice da aggiungere è questo: Range(“A1:C1”).Interior.ColorIndex = 7

      Tra le virgolette metti l’intervallo di celle da colorare 🙂

  2. Avatar Marina Cedillo
    Marina Cedillo

    wow” ho provato ed è fantastico ma ho una domanda:
    quando scelgo un fogluo anziche l’intero worbook non funziona.
    dipende forse del testo che incollato che all’inizio specifica “worbook ecc ecc…” che magari bisogna modificare con qualche altra parola chiave?

    Sarebbe molto utile poter applicare questa funzione ai signoli fogli anziche tutti i fogli del documento

    1. Avatar Marina Cedillo
      Marina Cedillo

      A posto, ho riguardato il video con più attenzione e ho risolto 😉 Grazie mille!

      Anch’io ho la stessa domanda fatta da “Femilix” in merito sè sia possibile mantenere il formato delle celle colorate in precedenza

      Grazie mille e complimenti!

      1. Avatar francesca

        Ciao Marina, devi ripristinare i colori con VBA, ho risposto a questa domanda in questo altro video tutorial: https://www.graficaeformazione.com/formazione/sfondo-vba/

        Il codice da aggiungere è questo: Range(“A1:C1”).Interior.ColorIndex = 7

        Tra le virgolette metti l’intervallo di celle da colorare

  3. Avatar giovanni63
    giovanni63

    salve tutto Ok grazie per i tuoi tips FANTASTICI

    1. Avatar francesca

      Grazie Giovanni! 🙂

  4. Avatar Massimo Guzzardi
    Massimo Guzzardi

    Non trovo l’opzione SheetSelectionChange

    1. Avatar Massimo Guzzardi
      Massimo Guzzardi

      trovata…. ma non funziona la macro. Occorre attivare qualcosa sulle opzioni di excel?

      1. Avatar Massimo Guzzardi
        Massimo Guzzardi

        risolto

  5. Avatar TX72
    TX72

    Bel tutorial semplice e lineare…
    Se poi volessi cambiare il colore del font basterebbe usare “Font” anziché “Interior”…
    Però, ho notato che se ho una tabella già formattata con altri colori (sfondo e font) questi non vengono ripristinati alla perdita del focus… Come si può fare per ripristinarli?

    1. Avatar francesca

      Ciao TX72, devi ripristinare i colori con VBA, ho risposto alla tua domanda in questo altro video tutorial: https://www.graficaeformazione.com/formazione/sfondo-vba/

      Il codice da aggiungere è questo: Range(“A1:C1”).Interior.ColorIndex = 7

      Tra le virgolette metti l’intervallo di celle da colorare

  6. Avatar Marinaio70
    Marinaio70

    Funziona bene, però mi toglie i colori anche da altre celle che voglio che rimangano del colore assegnato. E’ possibile fare riprendere il colore originale alle celle dopo il passaggio del cursore?
    Grazie
    Fabrizio

    1. Avatar francesca

      Ciao Marinaio70, devi ripristinare i colori con VBA, ho risposto alla tua domanda in questo altro video tutorial: https://www.graficaeformazione.com/formazione/sfondo-vba/

      Il codice da aggiungere è questo: Range(“A1:C1”).Interior.ColorIndex = 7

      Tra le virgolette metti l’intervallo di celle da colorare.

      Fammi sapere

  7. Avatar Sandro
    Sandro

    Ciao a me non funziona mi dice errorePrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range
    come posso fare? Grazie sei bravissima.

  8. Avatar Sandro
    Sandro

    Ciao a me non funziona mi dice errorePrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range
    come posso fare? Grazie sei bravissima.

    1. Avatar francesca

      Ciao Sandro,
      solitamente questo errore si verifica quando il codice VBA nel modulo “ThisWorkbook” contiene un errore. Ti consiglio di controllare attentamente il codice VBA (fai bene copia incolla) e occhio a dove incolli i codice (Foglio 1, 2, 3 o cartella)

  9. Avatar Silvano Chianucci
    Silvano Chianucci

    ciao , prima di tutto, complimenti .
    Io sono un principiante autodidatta che equivale a “0” ho seguito il tuo tutorial e tutto bene , la cella si colora come desideravo al passaggio del cursore o del mouse , il problema si presenta quando però attivo la protezione al foglio e non funziona più .Io vorrei che nel foglio bloccato mi si colorassero solo le celle sbloccate al passaggio del mouse .
    Scusa la mia scarsa preparazione , ti ringrazio se potrai trovare il tempo per aiutarmi . Silvano

  10. Avatar Massimo Baggio
    Massimo Baggio

    Buongiorno, nel VisualBasic trovo solo WorkSheet e non WorkBook.
    Di conseguenza non trovo il SheetSelectionChange.
    Come posso fare?
    Grazie in anticipo

    1. Avatar francesca

      Se incolli il codice dovrebbe impostare tutto da solo

  11. Avatar Maurimai
    Maurimai

    Grazie per il corso e per la chiarezza delle lezioni.
    Vorrei inserire il codice di questo tutorial in una macro da mettere nella cartella personale, in modo da poterla richiamare in qualunque file excel aperto (quindi anche xlxs).
    Ho provato a copiare il codice all’interno della cartella modulo1 (sottocartella della cartella personale), ma mi dà errore. Se copio il codice nella cartella questa_cartella_di_lavoro (sottocartella della cartella personale), non viene eseguito.
    Ci sarebbe anche un modo per potere attivare questa macro automaticamente, senza doverla richiamare?
    Praticamente la mia esigenza sarebbe quella di avere in tutti i file excel la colorazione dello sfondo delle celle nel momento in cui sono attive, in particolare evidenziare le celle risultanti usando il tasto “trova”.
    Grazie ed ancora complimenti.
    Maurizio

  12. Avatar Pierluigi
    Pierluigi

    Buongiorno
    complimenti per il video e la spiegazione
    a me non va mi da questo errore
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range
    errore di compilazione
    come posso risolvere?
    Grazie mille

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *