Selecció de coordenades

Tens un monitor gran, però les taules amb les quals treballes són encara més grans. I, mirant per sobre de la pantalla a la recerca de la informació necessària, sempre hi ha la possibilitat de "lliscar" els ulls a la línia següent i mirar en la direcció equivocada. Fins i tot conec persones que, per a aquestes ocasions, sempre tenen a prop un regle de fusta per enganxar-lo a la línia del monitor. Tecnologies del futur! 

I si la fila i la columna actuals es destaquen quan la cel·la activa es mou pel full? Una mena de selecció de coordenades com aquesta:

Millor que un governant, oi?

Hi ha diverses maneres de variar la complexitat d'implementar-ho. Cada mètode té els seus pros i contres. Fem-los una ullada amb detall.

Mètode 1. Òbvia. Macro que ressalta la fila i la columna actuals

La manera més òbvia de resoldre el nostre problema "al front": necessitem una macro que faci un seguiment del canvi en la selecció al full i seleccioneu tota la fila i la columna per a la cel·la actual. També és desitjable poder habilitar i desactivar aquesta funció si cal, de manera que aquesta selecció en forma de creu no ens impedeix introduir, per exemple, fórmules, sinó que només funciona quan mirem la llista a la recerca de les necessàries. informació. Això ens porta a les tres macros (seleccionar, habilitar i desactivar) que caldrà afegir al mòdul del full.

Obriu un full amb una taula en què voleu obtenir aquesta selecció de coordenades. Feu clic amb el botó dret a la pestanya del full i seleccioneu l'ordre del menú contextual Text font (Codi font).S'hauria d'obrir la finestra de l'Editor de Visual Basic. Copieu-hi aquest text d'aquestes tres macros:

Dim Coord_Selection As Boolean 'Variable global per a la selecció activada/desactivada Sub Selection_On() 'Macro a la selecció Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Procediment principal que realitza la selecció Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'si es selecciona més d'1 cel·la, sortiu Si Coord_Selection = False Then Exit Sub 'si la selecció està desactivada, sortiu de Application.ScreenUpdating = False Estableix WorkRange = Range ("A6:N300") 'adreça de l'interval de treball dins del qual és visible la selecció  

Canvieu l'adreça de l'interval de treball a la vostra; és dins d'aquest interval on la nostra selecció funcionarà. A continuació, tanqueu l'Editor de Visual Basic i torneu a Excel.

Premeu la drecera del teclat ALT + F8per obrir una finestra amb una llista de macros disponibles. Macro Selecció_Activada, com podeu endevinar, inclou la selecció de coordenades al full actual i la macro Selecció_Desactivada - l'apaga. A la mateixa finestra, fent clic al botó Paràmetres (Opcions) Podeu assignar dreceres de teclat a aquestes macros per facilitar el llançament.

Avantatges d'aquest mètode:

  • relativa facilitat d'implementació
  • selecció: l'operació és inofensiva i no modifica el contingut ni el format de les cel·les del full de cap manera, tot es manté com està.

Contres d'aquest mètode:

  • aquesta selecció no funciona correctament si hi ha cel·les combinades al full: totes les files i columnes incloses a la unió es seleccionen alhora
  • si premeu accidentalment la tecla Suprimeix, no només s'esborrarà la cel·la activa, sinó tota l'àrea seleccionada, és a dir, esborrarà les dades de tota la fila i la columna.

Mètode 2. Original. CELL + Funció de format condicional

Aquest mètode, tot i que té un parell d'inconvenients, em sembla molt elegant. Per implementar alguna cosa utilitzant només les eines d'Excel integrades, entrar mínimament en programació a VBA és acrobàcia 😉

El mètode es basa en utilitzar la funció CELL, que pot donar molta informació diferent sobre una cel·la determinada: alçada, amplada, número de fila-columna, format de nombre, etc. Aquesta funció té dos arguments:

  • una paraula de codi per al paràmetre, com ara "columna" o "fila"
  • l'adreça de la cel·la per a la qual volem determinar el valor d'aquest paràmetre

El truc és que el segon argument és opcional. Si no s'especifica, s'agafa la cel·la activa actual.

El segon component d'aquest mètode és el format condicional. Aquesta característica d'Excel extremadament útil us permet formatar automàticament les cel·les si compleixen les condicions especificades. Si combinem aquestes dues idees en una, obtenim el següent algorisme per implementar la nostra selecció de coordenades mitjançant el format condicional:

  1. Seleccionem la nostra taula, és a dir, aquelles cel·les en les quals s'hauria de mostrar la selecció de coordenades en el futur.
  2. A Excel 2003 i versions anteriors, obriu el menú Format – Format condicional – Fórmula (Format — Format condicional — Fórmula). A Excel 2007 i versions posteriors: feu clic a la pestanya Home (Inici)botó Format condicional - Crea una regla (Format condicional — Crea una regla) i trieu el tipus de regla Utilitzeu una fórmula per determinar quines cel·les voleu formatar (Utilitza la fórmula)
  3. Introduïu la fórmula per a la nostra selecció de coordenades:

    =O(CELL(“fila”)=FILA(A2),CELL(“columna”)=COLUMNA(A2))

    =O(CELL(«fila»)=FILA(A1), CÈL·LA(«columna») = COLUMNA(A1))

    Aquesta fórmula comprova si el número de columna de cada cel·la de la taula és el mateix que el número de columna de la cel·la actual. Igualment amb les columnes. Així, només s'ompliran aquelles cel·les que tinguin un número de columna o un número de fila que coincideixi amb la cel·la actual. I aquesta és la selecció de coordenades en forma de creu que volem aconseguir.

  4. premsa Marc (format) i establiu el color de farciment.

Tot està gairebé a punt, però hi ha un matís. El fet és que Excel no considera un canvi en la selecció com un canvi en les dades del full. I, com a resultat, no activa el recàlcul de fórmules i el canvi de color del format condicional només quan canvia la posició de la cel·la activa. Per tant, afegim una macro senzilla al mòdul de fulls que ho farà. Feu clic amb el botó dret a la pestanya del full i seleccioneu l'ordre del menú contextual Text font (Codi font).S'hauria d'obrir la finestra de l'Editor de Visual Basic. Copieu-hi aquest text d'aquesta macro senzilla:

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

Ara, quan canviï la selecció, s'iniciarà el procés de recàlcul de la fórmula amb la funció CEL·LULAR en format condicional i inundar la fila i la columna actuals.

Avantatges d'aquest mètode:

  • El format condicional no trenca el format de taula personalitzat
  • Aquesta opció de selecció funciona correctament amb cel·les combinades.
  • Cap risc d'eliminar una fila i una columna sencera de dades en fer clic accidentalment Esborrar.
  • Les macros s'utilitzen mínimament

Contres d'aquest mètode:

  • La fórmula per al format condicional s'ha d'introduir manualment.
  • No hi ha cap manera ràpida d'activar/desactivar aquest format; sempre s'habilita fins que s'elimina la regla.

Mètode 3. Òptim. Format condicional + macros

Mitjana daurada. Utilitzem el mecanisme per fer el seguiment de la selecció al full mitjançant macros del mètode-1 i afegim un ressaltat segur mitjançant el format condicional del mètode-2.

Obriu un full amb una taula en què voleu obtenir aquesta selecció de coordenades. Feu clic amb el botó dret a la pestanya del full i seleccioneu l'ordre del menú contextual Text font (Codi font).S'hauria d'obrir la finestra de l'Editor de Visual Basic. Copieu-hi aquest text d'aquestes tres macros:

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") 'адрес рабочего диапазона с таблицей Si Target.Count > 1 Aleshores Exit Sub If Coord_Selection = False Aleshores WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating (Target No Interset) = WorkRange (Target) WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions .Delete End If End Sub  

No oblideu canviar l'adreça de l'interval de treball per l'adreça de la taula. Tanqueu l'Editor de Visual Basic i torneu a Excel. Per utilitzar les macros afegides, premeu la drecera del teclat ALT + F8  i procediu de la mateixa manera que el mètode 1. 

Mètode 4. Bella. Complement FollowCellPointer

El MVP d'Excel Jan Karel Pieterse dels Països Baixos regala un complement gratuït al seu lloc web SeguiuCellPointer(36Kb), que resol el mateix problema dibuixant línies de fletxa gràfiques mitjançant macros per ressaltar la fila i la columna actuals:

 

Bona solució. No sense problemes en alguns llocs, però definitivament val la pena provar-ho. Baixeu l'arxiu, descomprimiu-lo al disc i instal·leu el complement:

  • a Excel 2003 i anteriors, a través del menú Servei – Complements – Visió general (Eines — Complements — Navega)
  • a Excel 2007 i posteriors, mitjançant Fitxer – Opcions – Complements – Vés – Navega (Fitxer — Opcions d'Excel — Complements — Vés a — Navega)

  • Què són les macros, on inserir codi de macro a Visual Basic

 

Deixa un comentari