Selezione delle coordinate

Hai un grande monitor, ma i tavoli con cui lavori sono ancora più grandi. E, guardando oltre lo schermo alla ricerca delle informazioni necessarie, c'è sempre la possibilità di "spostare" gli occhi sulla riga successiva e guardare nella direzione sbagliata. Conosco anche persone che, per tali occasioni, tengono sempre vicino un righello di legno per attaccarlo al filo sul monitor. Tecnologie del futuro! 

E se la riga e la colonna correnti vengono evidenziate quando la cella attiva si sposta sul foglio? Una sorta di selezione delle coordinate come questa:

Meglio di un righello, giusto?

Esistono diversi modi di varia complessità per implementarlo. Ogni metodo ha i suoi pro e contro. Diamo un'occhiata a loro nel dettaglio.

Metodo 1. Ovvio. Macro che evidenzia la riga e la colonna correnti

Il modo più ovvio per risolvere il nostro problema "sulla fronte": abbiamo bisogno di una macro che tenga traccia del cambiamento nella selezione sul foglio e selezioni l'intera riga e colonna per la cella corrente. È inoltre auspicabile poter abilitare e disabilitare questa funzione se necessario, in modo che una tale selezione a forma di croce non ci impedisca di inserire, ad esempio, formule, ma funzioni solo quando esaminiamo l'elenco alla ricerca del necessario informazione. Questo ci porta alle tre macro (seleziona, abilita e disabilita) che dovranno essere aggiunte al modulo foglio.

Apri un foglio con una tabella in cui desideri ottenere una tale selezione di coordinate. Fare clic con il tasto destro del mouse sulla scheda del foglio e selezionare il comando dal menu contestuale Testo sorgente (Codice sorgente).Dovrebbe aprirsi la finestra dell'editor di Visual Basic. Copia questo testo di queste tre macro in esso:

Dim Coord_Selection As Boolean 'Variabile globale per la selezione on/off Sub Selection_On() 'Macro sulla selezione Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Procedura principale che esegue la selezione Private Sub Worksheet_SelectionChange(ByVal Target As Intervallo) Dim WorkRange As Range Se Target.Cells.Count > 1 Quindi Esci Sub 'se è selezionata più di 1 cella, esci Se Coord_Selection = False Quindi Esci Sub 'se la selezione è disattivata, esci da Application.ScreenUpdating = False Imposta WorkRange = Intervallo (" A6:N300") 'indirizzo del campo di lavoro entro il quale è visibile la selezione  

Cambia l'indirizzo del campo di lavoro con il tuo: è all'interno di questo intervallo che la nostra selezione funzionerà. Quindi chiudere Visual Basic Editor e tornare a Excel.

Premi la scorciatoia da tastiera ALT + F8per aprire una finestra con un elenco di macro disponibili. Macro Selezione_On, come puoi immaginare, include la selezione delle coordinate sul foglio corrente e la macro Selezione_Off – lo spegne. Nella stessa finestra, facendo clic sul pulsante parametri (Opzioni) Puoi assegnare scorciatoie da tastiera a queste macro per un facile avvio.

Vantaggi di questo metodo:

  • relativa facilità di attuazione
  • selezione – l'operazione è innocua e non cambia in alcun modo il contenuto o la formattazione delle celle del foglio, tutto rimane così com'è

Contro di questo metodo:

  • tale selezione non funziona correttamente se ci sono celle unite nel foglio: tutte le righe e le colonne incluse nell'unione vengono selezionate contemporaneamente
  • se si preme accidentalmente il tasto Canc, non solo la cella attiva verrà cancellata, ma l'intera area selezionata, ovvero cancellerà i dati dall'intera riga e colonna

Metodo 2. Originale. CELL + Funzione di formattazione condizionale

Questo metodo, nonostante abbia un paio di inconvenienti, mi sembra molto elegante. Per implementare qualcosa utilizzando solo gli strumenti Excel integrati, entrare nella programmazione in VBA è come minimo l'acrobazia 😉

Il metodo si basa sull'utilizzo della funzione CELL, che può fornire molte informazioni diverse su una determinata cella: altezza, larghezza, numero di riga-colonna, formato numerico, ecc. Questa funzione ha due argomenti:

  • una parola in codice per il parametro, ad esempio "colonna" o "riga"
  • l'indirizzo della cella per la quale vogliamo determinare il valore di questo parametro

Il trucco è che il secondo argomento è facoltativo. Se non è specificato, viene presa la cella attiva corrente.

Il secondo componente di questo metodo è la formattazione condizionale. Questa funzione di Excel estremamente utile ti consente di formattare automaticamente le celle se soddisfano condizioni specificate. Se combiniamo queste due idee in una, otteniamo il seguente algoritmo per implementare la nostra selezione delle coordinate attraverso la formattazione condizionale:

  1. Selezioniamo la nostra tabella, ovvero quelle celle in cui in futuro dovrebbe essere visualizzata la selezione delle coordinate.
  2. In Excel 2003 e versioni precedenti, apri il menu Formato – Formattazione condizionale – Formula (Formato — Formattazione condizionale — Formula). In Excel 2007 e versioni successive, fare clic sulla scheda Casa (Casa)pulsante Formattazione condizionale – Crea regola (Formattazione condizionale — Crea regola) e scegli il tipo di regola Utilizzare una formula per determinare quali celle formattare (Usa formula)
  3. Inserisci la formula per la nostra selezione delle coordinate:

    =O(CELLA("riga")=RIGA(A2),CELLA("colonna")=COLONNA(A2))

    =O(CELLA(«riga»)=RIGA(A1),CELLA(«colonna»)=COLONNA(A1))

    Questa formula verifica se il numero di colonna di ciascuna cella nella tabella è uguale al numero di colonna della cella corrente. Allo stesso modo con le colonne. Pertanto, verranno riempite solo quelle celle che hanno un numero di colonna o un numero di riga che corrisponde alla cella corrente. E questa è la selezione delle coordinate a forma di croce che vogliamo ottenere.

  4. Fare clic sul pulsante Contesto (Formato) e imposta il colore di riempimento.

Tutto è quasi pronto, ma c'è una sfumatura. Il fatto è che Excel non considera una modifica nella selezione come una modifica nei dati sul foglio. E, di conseguenza, non attiva il ricalcolo delle formule e la ricolorazione della formattazione condizionale solo quando cambia la posizione della cella attiva. Pertanto, aggiungiamo una semplice macro al modulo del foglio che farà ciò. Fare clic con il tasto destro del mouse sulla scheda del foglio e selezionare il comando dal menu contestuale Testo sorgente (Codice sorgente).Dovrebbe aprirsi la finestra dell'editor di Visual Basic. Copia questo testo di questa semplice macro al suo interno:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Ora, quando la selezione cambia, verrà avviato il processo di ricalcolo della formula con la funzione CELL in formattazione condizionale e inonda la riga e la colonna correnti.

Vantaggi di questo metodo:

  • La formattazione condizionale non interrompe la formattazione della tabella personalizzata
  • Questa opzione di selezione funziona correttamente con le celle unite.
  • Nessun rischio di eliminare un'intera riga e colonna di dati in caso di clic accidentale Elimina.
  • Le macro sono utilizzate minimamente

Contro di questo metodo:

  • La formula per la formattazione condizionale deve essere inserita manualmente.
  • Non esiste un modo rapido per abilitare/disabilitare tale formattazione: è sempre abilitata fino a quando la regola non viene eliminata.

Metodo 3. Ottimale. Formattazione condizionale + Macro

Aurea media. Usiamo il meccanismo per tenere traccia della selezione sul foglio usando le macro del metodo-1 e aggiungiamo un'evidenziazione sicura usando la formattazione condizionale dal metodo-2.

Apri un foglio con una tabella in cui desideri ottenere una tale selezione di coordinate. Fare clic con il tasto destro del mouse sulla scheda del foglio e selezionare il comando dal menu contestuale Testo sorgente (Codice sorgente).Dovrebbe aprirsi la finestra dell'editor di Visual Basic. Copia questo testo di queste tre macro in esso:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей Se Target.Count > 1 Quindi esci da Sub Se Coord_Selection = False Quindi WorkRange.FormatConditions.Delete Esci Sub Fine Se Application.ScreenUpdating = False Se non Intersect(Target, WorkRange) Is Nothing Quindi Imposta CrossRange = Intersect( WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions .Elimina Fine Se Fine Sub  

Non dimenticare di modificare l'indirizzo dell'intervallo di lavoro con l'indirizzo del tuo tavolo. Chiudere l'editor di Visual Basic e tornare a Excel. Per utilizzare le macro aggiunte, premere la scorciatoia da tastiera ALT + F8  e procedere allo stesso modo del metodo 1. 

Metodo 4. Bello. Componente aggiuntivo FollowCellPointer

L'MVP di Excel Jan Karel Pieterse dai Paesi Bassi regala un componente aggiuntivo gratuito sul suo sito web SeguiCellPointer(36Kb), che risolve lo stesso problema disegnando linee di freccia grafiche utilizzando le macro per evidenziare la riga e la colonna correnti:

 

Bella soluzione. Non senza inconvenienti in alcuni punti, ma vale sicuramente la pena provare. Scarica l'archivio, decomprimilo su disco e installa il componente aggiuntivo:

  • in Excel 2003 e versioni precedenti – tramite il menu Servizio – Componenti aggiuntivi – Panoramica (Strumenti — Componenti aggiuntivi — Sfoglia)
  • in Excel 2007 e versioni successive, tramite File – Opzioni – Componenti aggiuntivi – Vai – Sfoglia (File — Opzioni di Excel — Componenti aggiuntivi — Vai a — Sfoglia)

  • Cosa sono le macro, dove inserire il codice della macro in Visual Basic

 

Lascia un Commento