Odabir koordinata

Imate veliki monitor, ali stolovi sa kojima radite su još veći. I, gledajući preko ekrana u potrazi za potrebnim informacijama, uvijek postoji šansa da "skliznete" oči na sljedeći red i pogledate u pogrešnom smjeru. Čak poznajem ljude koji za takve prilike uvijek drže blizu sebe drveni lenjir da ga prikače na liniju na monitoru. Tehnologije budućnosti! 

A ako su trenutni red i stupac istaknuti kada se aktivna ćelija pomiče po listu? Ova vrsta odabira koordinata:

Bolje od lenjira, zar ne?

Postoji nekoliko načina različite složenosti da se ovo implementira. Svaka metoda ima svoje prednosti i nedostatke. Pogledajmo ih detaljno.

Metoda 1. Očigledno. Makro koji ističe trenutni red i kolonu

Najočigledniji način da riješimo naš problem "na čelu" - potreban nam je makro koji će pratiti promjenu odabira na listu i odabrati cijeli red i stupac za trenutnu ćeliju. Poželjno je i da se ova funkcija po potrebi može uključiti i onemogućiti, kako nas takav križni odabir ne bi spriječio da unesemo npr. formule, već funkcionira samo kada pregledamo listu u potrazi za potrebnim informacije. Ovo nas dovodi do tri makroa (odaberite, omogućite i onemogućite) koje će trebati dodati modulu lista.

Otvorite list sa tabelom u kojoj želite da dobijete takav izbor koordinata. Kliknite desnim tasterom miša na karticu lista i izaberite komandu iz kontekstnog menija Izvorni tekst (Izvorni kod).Prozor Visual Basic Editora bi se trebao otvoriti. Kopirajte u njega ovaj tekst ova tri makroa:

Dim Coord_Selection As Boolean 'Globalna varijabla za odabir on/off Sub Selection_On() 'Makro na odabiru Coord_Selection = True End Sub Selection_Off() 'Makro isključen odabir Coord_Selection = False End Sub 'Glavna procedura koja vrši odabir Private Sub Worksheet_SelectionVChange As Opseg) Zatamni radni opseg kao opseg Ako Target.Cells.Count > 1 Onda izađi iz pod 'ako je odabrano više od 1 ćelije, izađi iz ako je Coord_Selection = False Onda izađi iz pod' ako je odabir isključen, izađi iz Application.ScreenUpdating = False Set WorkRange = Range (" A6:N300") 'adresa radnog opsega unutar kojeg je vidljiv izbor  

Promenite adresu radnog opsega u svoju – u tom opsegu će raditi naš izbor. Zatim zatvorite Visual Basic Editor i vratite se u Excel.

Pritisnite prečicu na tastaturi ALT + F8da otvorite prozor sa listom dostupnih makroa. Makro Selection_On, kao što možete pretpostaviti, uključuje odabir koordinata na trenutnom listu i makro Selection_Off – isključuje ga. U istom prozoru, klikom na dugme parametri (Opcije) Ovim makroima možete dodeliti prečice na tastaturi radi lakšeg pokretanja.

Prednosti ove metode:

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

Nedostaci ove metode:

  • takav odabir ne radi ispravno ako na listu postoje spojene ćelije - svi redovi i stupci uključeni u uniju se biraju odjednom
  • ako slučajno pritisnete tipku Delete, tada će biti obrisana ne samo aktivna ćelija, već i cijelo odabrano područje, tj. izbrisani podaci iz cijelog reda i stupca

Metoda 2. Original. ĆELIJA + funkcija uslovnog formatiranja

Ova metoda, iako ima par nedostataka, čini mi se vrlo elegantnom. Da implementirate nešto koristeći samo ugrađene Excel alate, minimalno ulazak u programiranje u VBA je akrobatika 😉

Metoda se zasniva na korišćenju funkcije CELL, koja može dati mnogo različitih informacija o datoj ćeliji – visinu, širinu, broj reda i stupca, format broja, itd. Ova funkcija ima dva argumenta:

  • kodna riječ za parametar, kao što je "kolona" ili "red"
  • adresu ćelije za koju želimo da odredimo vrednost ovog parametra

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

Druga komponenta ove metode je uslovno formatiranje. Ova izuzetno korisna Excel funkcija vam omogućava da automatski formatirate ćelije ako ispunjavaju određene uslove. Ako ove dvije ideje spojimo u jednu, dobićemo sljedeći algoritam za implementaciju našeg odabira koordinata kroz uvjetno formatiranje:

  1. Odabiremo našu tabelu, odnosno one ćelije u kojima će se u budućnosti prikazati odabir koordinata.
  2. U programu Excel 2003 i starijim, otvorite meni Format – Uvjetno oblikovanje – Formula (Format — Uvjetno oblikovanje — Formula). U programu Excel 2007 i novijim – kliknite na karticu Početna (Dom)dugme Uvjetno oblikovanje – Kreirajte pravilo (Uslovno oblikovanje — Kreiraj pravilo) i odaberite tip pravila Koristite formulu da odredite koje ćelije treba formatirati (Koristite formulu)
  3. Unesite formulu za naš odabir koordinata:

    =ILI(CELL(“red”)=RED(A2),CELL(“kolona”)=COLUMN(A2))

    =ILI(CELL(«red»)=RED(A1),CELL(«kolona»)=COLUMN(A1))

    Ova formula provjerava da li je broj kolone svake ćelije u tabeli isti kao broj kolone trenutne ćelije. Isto tako i sa kolonama. Tako će biti popunjene samo one ćelije koje imaju ili broj kolone ili broj reda koji odgovara trenutnoj ćeliji. A ovo je odabir koordinata u obliku križa koji želimo postići.

  4. Pritisnite dugme okvir (Format) i postavite boju ispune.

Sve je skoro spremno, ali postoji jedna nijansa. Činjenica je da Excel ne smatra promjenu odabira promjenom podataka na listu. I, kao rezultat toga, ne pokreće ponovno izračunavanje formula i ponovno bojenje uvjetnog oblikovanja samo kada se promijeni pozicija aktivne ćelije. Stoga, dodajmo jednostavan makro modulu lista koji će to učiniti. Kliknite desnim tasterom miša na karticu lista i izaberite komandu iz kontekstnog menija Izvorni tekst (Izvorni kod).Prozor Visual Basic Editora bi se trebao otvoriti. Kopirajte ovaj tekst ovog jednostavnog makroa u njega:

Privatni pod radni list_Izmjena izmjene(prema vrijednosti cilja kao raspona) ActiveCell.Izračunaj kraj pod  

Sada, kada se izbor promijeni, pokrenut će se proces ponovnog izračunavanja formule sa funkcijom CELL u uslovnom formatiranju i preplavi trenutni red i kolonu.

Prednosti ove metode:

  • Uvjetno oblikovanje ne prekida prilagođeno oblikovanje tablice
  • Ova opcija odabira radi ispravno sa spojenim ćelijama.
  • Nema rizika od brisanja čitavog reda i stupca podataka prilikom slučajnog klika izbrisati.
  • Makroi se minimalno koriste

Nedostaci ove metode:

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

Metoda 3. Optimalno. Uslovno oblikovanje + makroi

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

Otvorite list sa tabelom u kojoj želite da dobijete takav izbor koordinata. Kliknite desnim tasterom miša na karticu lista i izaberite komandu iz kontekstnog menija Izvorni tekst (Izvorni kod).Prozor Visual Basic Editora bi se trebao otvoriti. Kopirajte u njega ovaj tekst ova tri makroa:

Dim Coord_Selection kao 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 Range7 Set WorkRange("300" = 'adres rabočeg dijapazona s tablicom Ako Target.Count > 1 Zatim izađite iz Sub Ako Coord_Selection = False Onda WorkRange.FormatConditions.Delete Exit Sub End Ako Application.ScreenUpdating = False Ako nije Intersect(Target, WorkRange) nije ništa, onda postavite CrossRange = Intersect( WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex.FormatConditions = 33di TargetConditions .Delete End If End Sub  

Ne zaboravite promijeniti adresu radnog opsega u adresu svoje tablice. Zatvorite Visual Basic Editor i vratite se u Excel. Da biste koristili dodane makroe, pritisnite prečicu na tastaturi ALT + F8  i postupite na isti način kao metod 1. 

Metoda 4. Lijepo. Dodatak FollowCellPointer

MVP Excela Jan Karel Pieterse iz Holandije poklanja besplatan dodatak na svojoj web stranici FollowCellPointer(36Kb), koji rješava isti problem crtanjem grafičkih linija strelica pomoću makroa za isticanje trenutnog reda i stupca:

 

Lepo rešenje. Ne bez grešaka na mjestima, ali svakako vrijedi pokušati. Preuzmite arhivu, raspakujte je na disk i instalirajte dodatak:

  • u programu Excel 2003 i starijim – preko menija Usluga – Dodaci – Pregled (Alati — Dodaci — Pregledaj)
  • u Excelu 2007 i novijim, kroz Datoteka – Opcije – Dodaci – Idi – Pregledaj (Datoteka — Excel opcije — Dodaci — Idi na — Pregledaj)

  • Šta su makroi, gde u Visual Basic umetnuti makro kod

 

Ostavite odgovor