Dinamizare foaie de calcul

Îmi plac unele trăsături pe care le-am întâlnit în anumite aplicaţii unde, de exemplu, lăţimea unei coloane/înălţimea unui rând se poate ajusta automat în funcţie de cel mai mare conţinut al unei celule sau să fie evidenţiat rândul/coloana pe care se află cursorul. M-am bucurat să realizez că, prin folosirea unor mici artificii, se poate face asta şi în Excel.

Redimensionarea automată pentru rânduri/coloane

Fig. 1

În primă fază este necesară accesarea VBA care se poate realiza, fie prin apăsarea combinaţiei de taste Alt+F11 sau click dreapta pe tab-ul foii de calcul şi alegerea opţiunii View Code (Fig. 1).

Vom alege Worksheet, din lista de obiecte (Fig. 2), care va asigura, de altfel, premisele rutinei de creat. Astfel că, ce rămâne de făcut, este să inserăm codul: Cells.EntireColumn.AutoFit. Vom remarca, la scrierea într-o celulă că, dacă vom avea conţinut mai mult decât lăţimea iniţială, după ce vom da Enter se va realiza auto-dimensionarea.

Aşadar, forma finală pentru auto-ajustarea lăţimii coloanei va avea următorul conţinut:

Fig. 2
În acelaşi mod se poate crea această opţiune, şi pentru înălţimea rândului, cu o mică modificare, desigur: Cells.EntireRow.AutoFit.
Desigur, prin faptul că alegem lăţirea coloanei în funcţie de conţinut, putem realiza că ajustarea înălţimii rândului îşi pierde din importanţă.

Evidenţiere rând / coloană curentă

Apelând la aceeaşi „traiectorie” VBA pentru a realiza acest deziderat, vom avea nevoie, în prealabil, de o mică pregătire condiţionabilă. Astfel, dacă dorim să evidenţiem rândul pe care ne aflăm, vom selecta, în prealabil toată foaia de calcul (dacă se doreşte ca efectul să fie propagat în orice celulă accesată din foaia respectivă).

Vom accesa Conditional Formatting şi creăm o nouă regulă: =ROW()=CELL("row"), desigur, cu formatarea dorită (Fig. 3).

Fig. 3
În aceeaşi manieră, dacă ne dorim, putem lua în calcul şi posibilitatea evidenţierii coloanei curente, având următoarea regulă de condiţionare: =COLUMN()=CELL("col").

Apoi, la fel ca în paşii de la capitolul anterior, ajungem în VBA, la crearea unei scurte subrutine, folosind o singură acţiune (Application.ScreenUpdating = True), după cum urmează:

Este necesar a menţiona că aceste opţiuni trebuie folosite cu oarecare prudenţă: făcând actualizare permanentă, în timp real, există riscul să cam solicite procesorul calculatorului, deci să genereze potenţiale sincope.

Author: Ovidiu.S

Suficient de pasionat de această zonă profesională ca, în cazul în care ştiu ceva - cât de puţin - să împărtăşesc cu alţii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *