Odabir koordinata

Imate veliki monitor, ali stolovi s kojima radite su još veći. I, gledajući preko ekrana u potrazi za potrebnim informacijama, uvijek postoji šansa da "skliznete" pogledom na sljedeći redak i pogledate u pogrešnom smjeru. Čak poznajem ljude koji za takve prilike uvijek uza se drže drveno ravnalo da ga pričvrste na crtu na monitoru. Tehnologije budućnosti! 

A ako su trenutni redak i stupac označeni kada se aktivna ćelija pomiče po listu? Ovakav odabir koordinata:

Bolje od ravnala, zar ne?

Postoji nekoliko načina različite složenosti za ovu implementaciju. Svaka metoda ima svoje prednosti i nedostatke. Pogledajmo ih detaljno.

Metoda 1. Očito. Makronaredba koja ističe trenutni redak i stupac

Najočitiji način da riješimo naš problem "na čelu" - trebamo makronaredbu koja će pratiti promjenu odabira na listu i odabrati cijeli redak i stupac za trenutnu ćeliju. Također je poželjno imati mogućnost uključivanja i isključivanja ove funkcije ako je potrebno, tako da nam takav križni odabir ne onemogućuje unos npr. formula, već radi samo kada listamo po popisu u potrazi za potrebnim informacija. Ovo nas dovodi do tri makronaredbe (odaberi, omogući i onemogući) koje će trebati dodati u modul lista.

Otvorite list s tablicom u kojoj želite dobiti takav odabir koordinate. Desnom tipkom miša kliknite karticu lista i odaberite naredbu iz kontekstnog izbornika Izvorni tekst (Izvorni kod).Trebao bi se otvoriti prozor Visual Basic Editor. Kopirajte ovaj tekst ove tri makronaredbe u njega:

Dim Coord_Selection As Boolean 'Globalna varijabla za odabir on/off Sub Selection_On() 'Macro on selection Coord_Selection = True End Sub Selection_Off() 'Macro off selection Coord_Selection = False End Sub 'Glavna procedura koja izvodi odabir Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'ako je odabrano više od 1 ćelije, izađite If Coord_Selection = False Then Exit Sub 'ako je odabir isključen, izađite iz Application.ScreenUpdating = False Set WorkRange = Range (" A6:N300") 'adresa radnog raspona unutar kojeg je odabir vidljiv  

Promijenite adresu radnog raspona u svoju vlastitu - unutar tog raspona naš će odabir funkcionirati. Zatim zatvorite Visual Basic Editor i vratite se u Excel.

Pritisnite tipkovnički prečac ALT + F8za otvaranje prozora s popisom dostupnih makronaredbi. Makro Odabir_uključen, kao što možete pretpostaviti, uključuje odabir koordinata na trenutnom listu i makro Odabir_isključen – isključuje ga. U istom prozoru klikom na gumb Parametri (Opcije) Ovim makronaredbama možete dodijeliti tipkovničke prečace za jednostavno pokretanje.

Prednosti ove metode:

  • relativna jednostavnost implementacije
  • odabir – operacija je bezopasna i ni na koji način ne mijenja sadržaj ili oblikovanje ćelija lista, sve ostaje kako jest

Nedostaci ove metode:

  • takav odabir ne radi ispravno ako na listu postoje spojene ćelije – svi retci i stupci uključeni u uniju odabrani su odjednom
  • ako slučajno pritisnete tipku Delete, tada se ne briše samo aktivna ćelija, već i cijelo odabrano područje, tj. brisanje podataka iz cijelog retka i stupca

Metoda 2. Izvornik. CELL + Funkcija uvjetnog oblikovanja

Ova metoda, iako ima nekoliko nedostataka, čini mi se vrlo elegantnom. Implementirati nešto koristeći samo ugrađene Excel alate, minimalno ući u programiranje u VBA je aerobatika 😉

Metoda se temelji na korištenju funkcije CELL, koja može dati mnogo različitih informacija o danoj ćeliji – visina, širina, broj retka-stupca, format broja itd. Ova funkcija ima dva argumenta:

  • kodna riječ za parametar, kao što je "stupac" ili "redak"
  • adresu ćelije za koju želimo odrediti vrijednost ovog parametra

Trik je u tome što je drugi argument neobavezan. Ako nije navedeno, uzima se trenutno aktivna ćelija.

Druga komponenta ove metode je uvjetno oblikovanje. Ova iznimno korisna Excel značajka omogućuje vam automatsko formatiranje ćelija ako zadovoljavaju navedene uvjete. Kombiniramo li ove dvije ideje u jednu, dobit ćemo sljedeći algoritam za implementaciju odabira koordinata kroz uvjetno oblikovanje:

  1. Odaberemo našu tablicu, tj. one ćelije u kojima bi se u budućnosti trebao prikazati odabir koordinata.
  2. U programu Excel 2003 i starijim otvorite izbornik Format – Uvjetno oblikovanje – Formula (Format — Uvjetno oblikovanje — Formula). U programu Excel 2007 i novijim – kliknite karticu Naslovna (Dom)dugme Uvjetno oblikovanje – Stvorite pravilo (Uvjetno oblikovanje — Stvori pravilo) i odaberite vrstu pravila Upotrijebite formulu da odredite koje će ćelije formatirati (Koristite formulu)
  3. Unesite formulu za naš odabir koordinata:

    =ILI(ĆELIJA(“redak”)=REDAK(A2),ĆELIJA(“stupac”)=STUPAC(A2))

    =ILI(ĆELIJA(«Red»)=RED(A1),ĆELIJA(«stupac»)=STUPAC(A1))

    Ova formula provjerava je li broj stupca svake ćelije u tablici isti kao broj stupca trenutne ćelije. Isto tako i sa stupcima. Stoga će biti popunjene samo one ćelije koje imaju ili broj stupca ili broj retka koji odgovara trenutnoj ćeliji. I to je odabir koordinata u obliku križa koji želimo postići.

  4. Pritisnite gumb Okvir (format) i postavite boju ispune.

Sve je gotovo spremno, ali postoji jedna nijansa. Činjenica je da Excel promjenu odabira ne smatra promjenom podataka na listu. Kao rezultat toga, ne pokreće ponovno izračunavanje formula i ponovno bojenje uvjetnog oblikovanja samo kada se promijeni položaj aktivne ćelije. Stoga, dodajmo jednostavnu makronaredbu modulu lista koja će to učiniti. Desnom tipkom miša kliknite karticu lista i odaberite naredbu iz kontekstnog izbornika Izvorni tekst (Izvorni kod).Trebao bi se otvoriti prozor Visual Basic Editor. Kopirajte ovaj tekst ove jednostavne makronaredbe u njega:

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

Sada, kada se odabir promijeni, pokrenut će se proces ponovnog izračuna formule s funkcijom CELL u uvjetnom oblikovanju i preplavi trenutni redak i stupac.

Prednosti ove metode:

  • Uvjetno oblikovanje ne prekida prilagođeno oblikovanje tablice
  • Ova opcija odabira radi ispravno sa spojenim ćelijama.
  • Nema rizika od brisanja cijelog retka i stupca podataka slučajnim klikom Izbrisati.
  • Makronaredbe se koriste minimalno

Nedostaci ove metode:

  • Formula za uvjetno oblikovanje mora se unijeti ručno.
  • Ne postoji brzi način da se omogući/onemogući takvo oblikovanje – uvijek je omogućeno dok se pravilo ne izbriše.

Metoda 3. Optimalno. Uvjetno oblikovanje + makronaredbe

Zlatna sredina. Koristimo mehanizam za praćenje odabira na listu pomoću makronaredbi iz metode 1 i dodajemo mu sigurno isticanje korištenjem uvjetnog oblikovanja iz metode 2.

Otvorite list s tablicom u kojoj želite dobiti takav odabir koordinate. Desnom tipkom miša kliknite karticu lista i odaberite naredbu iz kontekstnog izbornika Izvorni tekst (Izvorni kod).Trebao bi se otvoriti prozor Visual Basic Editor. Kopirajte ovaj tekst ove tri makronaredbe u njega:

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") 'adres radnog raspona s tablice If Target.Count > 1 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Is Nothing Then Set 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 .Delete End If End Sub  

Ne zaboravite promijeniti adresu radnog raspona u adresu tablice. Zatvorite Visual Basic Editor i vratite se u Excel. Za korištenje dodanih makronaredbi pritisnite tipkovni prečac ALT + F8  i nastavite na isti način kao u 1. metodi. 

Metoda 4. Lijepa. Dodatak FollowCellPointer

Excel MVP Jan Karel Pieterse iz Nizozemske daje besplatan dodatak na svojoj web stranici FollowCellPointer(36 Kb), koji rješava isti problem crtanjem grafičkih linija strelica pomoću makronaredbi za označavanje trenutnog retka i stupca:

 

Lijepo rješenje. Ne bez mjestimičnih grešaka, ali svakako vrijedi pokušati. Preuzmite arhivu, raspakirajte je na disk i instalirajte dodatak:

  • u Excelu 2003 i starijim – kroz izbornik Usluga – Dodaci – Pregled (Alati — Dodaci — Pregledaj)
  • u Excelu 2007 i novijim, kroz Datoteka – Opcije – Dodaci – Idi – Pregledaj (Datoteka — Mogućnosti programa Excel — Dodaci — Idi na — Pregledaj)

  • Što su makronaredbe, gdje umetnuti makro kod u Visual Basicu

 

Ostavi odgovor