Sunteți pe pagina 1din 58

Excel 2010

Macro
By Alina Stănculescu
Pagina |2
Cuprins
Modulul 1: Inregistrarea unui macro simplu.....................................................................................1

1.1. Inregistrarea unui macro...................................................................................................1

1.2. Rularea unui macro...........................................................................................................6

1.3. Asocierea unei scurtaturi unui macro vechi.......................................................................6

1.4. Ștergerea unui macro........................................................................................................8

1.5. Ștergerea unui macro stocat în Personal Workbook..........................................................8

1.6. Salvarea unui registru care conține macrouri..................................................................11

Modulul 2: Utilizarea unui macro....................................................................................................12

2.1. Utilizarea unui macro............................................................................................................12

2.2. Crearea unui tab nou............................................................................................................14

2.2.1. Definirea unui grup într-un tab nou creat......................................................................15

2.2.2. Adăugarea de comenzi pe un tab nou creat..................................................................15

2.2.3. Adăugarea de macrocomenzi pe un tab nou creat........................................................17

2.3. Crearea unui buton grafic și asocierea cu o macrocomandă................................................19

Modulul 3 Modificarea macrourilor și lucrul cu VB.........................................................................21

3.1. Familiarizarea cu VB..............................................................................................................21

3.2. Modificarea unui macro.......................................................................................................22

3.3. Cele mai des utilizate structuri de tip buclă pentru editarea macrourilor............................24

Modulul 4 Inregistrarea unui macro complex..................................................................................26

4.1. Înregistrarea unui macro care să copieze doar valorile.........................................................28

4.2. Înregistrarea unui macro pentru filtrare avansată...........................................................29

4.3. Înregistrarea unui macro pentru automatizarea instrumentului GoalSeek...........................31


4.4.Realizarea unui macro interactiv...........................................................................................33

4.5. Crearea unui macro pentru sortarea datelor după o coloană si a crearea subtotalurilor într-un
tabel............................................................................................................................................36

Modulul 5: Simplificarea si protejarea unui macro..........................................................................40

5.1. Cum sa faci un macro usor de înțeles...................................................................................40

5.2. Simplificarea cotinutului unui marco....................................................................................42

5.3. Redenumirea unui macro.....................................................................................................45

5.4. Protejarea macroului cu parola............................................................................................46

5.5. Folosirea Macro Virus Protection.........................................................................................48

5.6. Crearea unei semnături digitale personale...........................................................................49

5.7. Adăugarea unei semnături digitale.......................................................................................51

5.8. Adăugarea unei semnaturi digitala la lista de surse de incredere.........................................53

Pagina |4
Excel Macro

Modulul 1: Inregistrarea unui macro


simplu

1.1. Inregistrarea unui macro


Înregistrare unui macro este utilă atunci când utilizatorul face același lucru în
mod repetitiv. Înregistrarea unui macro simplifică activitatea utilizatorului,
ducând la automatizarea activități acestuia. În cadrul unui macro pot fi
înregistrate o serie de comenzi pe care utilizatorul le face pentru a realiza un
obiectiv.

Cea mai ușoară modalitatea de a realiza un macro este înregistrarea acestuia.


Modalitatea dificilă presupunea programarea acestuia în Visual Basic.

Înainte de a înregistra un macro este bine să vă planificați bine pași și


comenzile ce urmează să fie înregistrate, astfel încât să se elimine pași inutili,
dar și eventualele erori ce pot să apară.

Înregistrarea unui macro presupune următoarele etape:

1. Click pe butonul File;

2. Click pe Option;

3. Click pe Customize Ribbon;

4. În panoul din partea dreapta, sub secțiunea Customize the


Ribbon, se bifează ribbonul Developer;

© Alina Maria Stanculescu Pagina |1


Excel Macro

5. Click pe butonul OK.

Având ribbonul Developer afișat se trece la înregistrarea macro-ului.

6. Click pe ribbonul Developer, pentru afișarea acestuia;

7. Click pe butonul Record Macro din grupul Code;

8. În fereastra de dialog afișată se completează în câmpul Macro


name un nume pentru macro-ul ce urmeaza sa fie întregistrat. Atenție!
Numele unui macro nu trebuie să conțină spații .

Pagina |2 © Alina Maria Stanculescu


Excel Macro

9. În secțiunea Shortcut key poate fi asociată o combinație de


taste cu macro-ul ce urmează să fie înregistrat, pentru a mări viteza de
lucru și pentru a ușura accesul la macro-ul ce urmează să fie înregistrat.
Pentru a asocia o combinație de taste, un shortcut cu macro-ul ce
urmează să fie înregistrat trebuie urmate etapele:

a. Click în secțiunea asociată acestui lucru;

b. Apăsați combinația de taste dorită pentru macro-ul


înregistrat. De regula SFIHT+ O SINGURA TASTA. Pont!
Majoritatea shortcut-urilor de tipul CTRL+ O SINGURA TASTA
sunt deja asociate cu diferite comenzi, având în vedere acest
lucru sugerez să se folosească o combinație de taste de tipul
CTRL+SHIFT+O TASTA.

10. Se selectează locul unde urmează să fie salvat macro-ul


înregistrat din lista de opțiuni ce cuprinde:

© Alina Maria Stanculescu Pagina |3


Excel Macro

a. This Workbook – registru de lucru activ. Acest lucru


înseamnă că macro-ul va fi salvat și va rula doar în registrul de
lucru activ;

b. Personal Macro Workbook – se selectează această


opțiune dacăs e dorește crearea unui macro care să funționeze
în toate registrele de calcul create. Selectând opțiunea
Personal Macro Workbook Excel creează un registru de calcul
ascuns în care acest macro va fi stocat.

c. New Workbook – această opțiune va face ca macro-ul


înregistrat să ruleze în toate registrele de lucru noi ce vor fi
create, fără a se închide instanța curentă a Excelul-ului.

11. Se introduce o descrire în câmpul Description.

12. Se apasă butonul OK.

13. După apăsarea butonului OK începe întregistrarea macro-ului.


Executați acele comenzi pe care doriți să le automatizați prin
intermediul unui macro. După ce ați executat toate comenzile apăsați
butonul Stop Recording din grupul Code aflat în ribbonul Developer.
Pagina |4 © Alina Maria Stanculescu
Excel Macro

Atenție! Excel înregistrează toți pași pe care îi faceți. Orice click pe care îl
executați este înregistrat în cadrul macro-ului. Dacă faceți click din greșeală pe
o comandă sau celulă, acest lucru este înregistrat. De aceea este bine să vă
programați toate etapele pe care doriți să le parcurgeți.

Dacă doriți să înregistrați un macro care să formateze ÎNTOTDEANU aceleași


celule, sau care să aplice același chenar sau care să execute aceeași formulă în
cadrul acelorași celule (de exemplu: un macro care face întotdeauna suma
celulelor de la A1 la A10 în celula A2) atunci asigurați-vă că înregistrați un
macro cu referințe absolute. Asta presupune ca butonul Use Relative
References din grupul Code, de pe ribbonul Developer să nu fie selectat, adică
să nu fie evidențiat cu culoarea portocalie.

Dacă, dimpotrivă, doriți înregistrarea unui macro cu referințe relative (de


exemplu un macro care să formateze 3 celule aflate la dreapta celulei selectat)
atunci, înainte de începerea înregistrării macro-ului, selectați comanda Use
Relative References.

Exercițiul 1. Înregistrați un macro, cu referință


relativă, care să aibă asociat shortcut-ul Ctrl+Shift+T,
în registrul de lucru curent și care să formateze 3
celule la dreapta selecție și 10 celule în jos astfel: cu
un chenar simplu, cu o culoare de fundal, cu font rosu
și chenar roșu dublu în primul rând.

Aplicați macro-ul creat folosind shortcut-ul asociat în


mai multe celule ale aceleași foi de lucru, dar și în foi
de lucru nou create.

Exercițiul 2. Înregistrați un macro, cu referință absolută, care să aibă


asociat shortcut-ul Ctrl+Shift+F, în registrul de lucru curent și care să
formateze celulele de la B3:E10 astfel: cu un chenar simplu, cu o culoare
de fundal, cu font albastru și chenar albastru dublu în primul rând.

Aplicați macro-ul creat folosind shortcut-ul asociat în foaia de lucru curent,


dar și în foi de lucru nou create.

Exercițiul 3. Înregistrați un macro, cu referință relativă, care să aibă asociat


shortcut-ul Ctrl+Shift+Z, în registrul Personal și care să formateze 2 celulele
la dreapta selecției și 5 celule în jos astfel: cu un chenar simplu, cu o
culoare de fundal, cu font albastru bold și chenar albastru dublu în ultimul
rând. Aplicați pe ultimul rând, celula din dreapta, funcția sumă care să facă
suma tuturor numerelor aflate in cele 4 celule de deasupra.

© Alina Maria Stanculescu Pagina |5


Excel Macro

Aplicați macro-ul creat folosind shortcut-ul asociat în foaia de lucru curent,


dar și într-un registru nou creat.

1.2. Rularea unui macro

Pentru a rula un macro nu trebuie decât să apăsați combinația de taste


asociată macro-ului respectiv. Dacă nu ați asociat un shortcut cu macro-ul
creat atunci, pentru a-l rula, trebuie urmate etapele:

1. Deschideți registru de lucru în care aveți întregistrat macro-ul


(dacă este vorba de un macro stocat intr-un workbook anume);

2. Deschideți ribbonul View;

3. Click pe butonul Macros, aflat în grupul Macros;

4. În fereastra de dialog desschisă selectați macro-ul pe care doriți


să-l rulați și apăsați butonul Run.

1.3. Asocierea unei scurtaturi unui macro vechi

Dacă aveți un macro căruia nu i-ați asociat de la început un shortcut, puteți să


faceți acest lucru în orice moment, urmând etapele:

1. Deschideți registrul de calcul în care este stocat macro-ul


respectiv;

Pagina |6 © Alina Maria Stanculescu


Excel Macro

2. Deschideți ribbonul Developer și faceți click pe comanda


Macros;

3. În fereastra afișată selectați macro-ul căruia doriți să-i asociați


un shortcut și apăsați butonul Option;

4. În fereastra afișată asociați o combinație de taste cu macro-ul


selectat.

5. Apăsați butonul OK în fereastra Macro Options;

6. Click pe butonul Cancel din fereastra Macro.

1.4. Ștergerea unui macro

© Alina Maria Stanculescu Pagina |7


Excel Macro

Pentru a șterge un macro trebuie urmate etapele:

1. Deschideți registrul de calcul în care este stocat macro-ul


respectiv;

2. Deschideți ribbonul Developer și faceți click pe comanda


Macros;

3. În fereastra afișată selectați macro-ul pe care doriți să-l ștergeți


și apăsați butonul Delete.

Atenție! Pentru a șterge un macro stocat în Personal Workbook citiți


secțiunea 1.5.

4. Click OK în fereastra de dialog în care sunteți întrebat dacă


doriți să ștergeți macro-ul.

Exercițiul 4. Înregistrați un macro, cu referință


relativă, cu numele FormatareTabel care să aibă
asociat shortcut-ul Ctrl+Shift+B, în registrul de lucru
curent și care să formateze 5 celule la dreapta selecție
și 10 celule în jos astfel: cu un chenar dublu roșu în
exterior, cu un fundal de culoare galben deschis, cu
font roșu.

Aplicați macro-ul creat folosind shortcut-ul asociat în


mai multe celule ale aceleași foi de lucru, dar și în foi
de lucru nou create.

Ștergeți macro-ul FormatareTabel.

1.5. Ștergerea unui macro stocat în Personal Workbook

Pentru a putea șterge un macro stocat în registrul Personal trebuie să se afișeze


registrul Personal. În mod normal registrl de lucru Personal este ascuns, astfel
incât să nu fie editat, modificat sau șters din greșeală. Dar pentru a putea
șterge sau modifica un macro stocat în registrul Personal aceste trebuie afișat.
Etapele pentru afișarea registrului personal sunt următoarele:
Pagina |8 © Alina Maria Stanculescu
Excel Macro

1. Click pe ribbonul View și din grupul Window se selectează


comanda Unhide;

2. În fereastra afișată se selectează registrul Personal (dacă nu


este selectat implicit) și se apasă butonul OK.

Având registrul Personal afișat se poate trece la ștergerea macro-ului. Pentru a


face acest lucru trebuie urmate etapele:

3. Se deschide ribbonul Developer și se face click pe comanda


Macros;

4. În fereastra afișată se selectează macro-ul pe care doriți să-l


ștergeți și apăsați butonul Delete.

© Alina Maria Stanculescu Pagina |9


Excel Macro

5. In fereastra afisata, în care sunteți întrebați dacă doriți să


ștergeți macro-ul, se face click pe butonul OK.

După ștergerea macro-ului din registrul Personal acest registru trebuie ascuns
din nou. Pentru a face acest lucru trebuie urmate etapele:

6. Se deschide ribbonul View, și în secțiunea Window se face click


pe comanda Hide;

Acest lucru va duce la ascunderea registrului Personal și la întoarcerea în


registrul de lucru deschis inițial.

Exercițiul 5. Înregistrați un macro cu numele


RaportMedieLunara, cu referință relativă, care să aibă
asociat shortcut-ul Ctrl+Shift+F, în registrul Personal și
care să formateze 2 celulele la dreapta selecției și 5
celule în jos astfel: cu un chenar simplu albastru, cu o
culoare de albastru deschis, cu font albastru închis
bold și chenar albastru dublu în ultimul rând. Aplicați
pe ultimul rând, celula din dreapta, funcția AVERAGE
care să facă media tuturor numerelor aflate in cele 4
celule de deasupra.

Aplicați macro-ul creat folosind shortcut-ul asociat în


foaia de lucru curent, dar și într-un registru nou creat.

Ștergeți macro-ul RaportMedieLunară și ascundeți


registrul personal.

1.6.
1.7. Salvarea unui registru care conține macrouri

P a g i n a | 10 © Alina Maria Stanculescu


Excel Macro

La salavarea unui registru de calcul care are cel puțin un macro utilizatorul este
atenționat asupra acestui aspect și este pus să aleagă între salvarea registrului
fără macrouri sau salvarea registrului cu macro, adică în format xlsm (Excel
Macro-Enabled workbook).

© Alina Maria Stanculescu P a g i n a | 11


Excel Macro

Modulul 2: Utilizarea unui macro


2.1. Utilizarea unui macro
Pentru a putea lucra cu macrouri trebuie să verificați că în Excel este permisă
rularea acestora.

Atenție! Dacă nu este permisă rularea macrourilor, la deschiderea unui fișier


care conține macrouri, fișier de tip xlsm, veți fi atenționat și îndrumat să faceți
setările necesare rulări unui macro.

Apăsați butonul Enable Macros pentru a permite rularea macrourilor.

Pentru a nu mai întâmpina astfel de probleme este bine să vă asigurați că este


permisă rularea macrourilor în excel. Pentru a face acest lucru executați
următori pași:

1. Deschideți Excel-ul;

2. Click pe File și selectați comanda Options;

3. În fereastra deschisă faceți click pe fila Trust Center;

P a g i n a | 12 © Alina Maria Stanculescu


Excel Macro

4. Click pe butonul Trust Center Settings;

5. În fereastra afișată click pe fila Macro Settings;

6. Se bifează opțiunea Enable all macros;

© Alina Maria Stanculescu P a g i n a | 13


Excel Macro

7. Click OK, OK.

Utilizarea macrourilor poate fi făcută fie pe baza unei scrutături, așa cum am
vazut în secțiunea 1.3, fie direct din lista de macrouri (așa cum s-a văzut în
secțiunea 1.2), fie dintr-un ribbon, fie de la un buton.

2.2. Crearea unui tab nou


Pentru a crea un Tab nou trebuie urmate etapele:

1. Click pe butonul File;

2. Selectarea comenzi Options;

3. Selectarea pagini Customize Ribbon;

4. click pe butonul New Tab, aflat in partea de jos a ferestrei;

5. selectarea Tabului nou inserat și click pe butonul Rename


pentru a redenumi Tab -ul creat.

6. Introduceți numele și apăsați butonul OK sau tasta Enter.

P a g i n a | 14 © Alina Maria Stanculescu


Excel Macro

2.2.1. Definirea unui grup într-un tab nou creat

Pentru a adăuga comenzi pe un tab / ribbon nou creat trebuie întâi creat un
grup. Pentru a face acest lucru trebuie urmate etapele:

1. Selectati grupul nou aflat sub Tab-ul nou creat și apăsați


butonul Rename.

2. Introduceți un nume pentru grupul selectat și apăsați butonul


Ok.

3. Definiți câte grupuri doriți pentru tab-ul nou creat, apăsând


butonul New Group.

2.2.2. Adăugarea de comenzi pe un tab nou creat

Pentru a adăuga comenzi /butoane într-un grup trebuie urmate etapele:

© Alina Maria Stanculescu P a g i n a | 15


Excel Macro

1. Selectați din partea stângă comenzile pe care doriți să le


accesați în Ribbonul nou creat și apăsați butonul Add.

2. Pentru a șterge o comandă adăugată în Tab-ul nou creat


trebuie selectată comanda și apăsat butonul Remove.

P a g i n a | 16 © Alina Maria Stanculescu


Excel Macro

3. După ce au fost adăugate toate comenzile dorite se apasă


butonul OK. Se poate observa pe bara de Tab-uri apariția tab-ului nou
creat.

2.2.3. Adăugarea de macrocomenzi pe un tab nou creat


După ce ați creat / înregistrat unul sau mai multe macrouri le puteți asocia unor
butoane de pe ribbon-ul nou creat. Pentru a face acest lucru trebuie urmate
etapele:

1. Click pe butonul File;

2. Selectarea comenzi Options;

3. Selectarea pagini Customize Ribbon;

4. În secțiunea din partea dreaptă selectați acel tab și grup în


cadrul căruia doriși să adăugați macrourile înregistrate;

5. Din secțiunea stângă, sub Choose comands from selectați din


lista derulantă Macros;

© Alina Maria Stanculescu P a g i n a | 17


Excel Macro

6. Din lista de macrouri afișată selectați acele macrouri pe care


doriți să le adăugați pe tab-ul selectat și apăsați butonul Add.

7. După ce ați adăugat toate macrourile în grupul selectat apăsați


butonul OK (puteți să redenumiți macrourile sau să le asociați butoane,
selectându-le și apăsând butonul Rename).

P a g i n a | 18 © Alina Maria Stanculescu


Excel Macro

Exercițiul 6. Înregistrați un macro, cu referință


relativă, cu numele FormatareSelectie care să aibă
asociat shortcut-ul Ctrl+Shift+Q, în registrul de lucru
curent și care să formateze celula / celulele selectate
astfel: cu un chenar simplu verde închis, cu un fundal
de verde deschis, cu font verde închis.

Aplicați macro-ul creat folosind shortcut-ul asociat în


mai multe celule ale aceleași foi de lucru, dar și în foi
de lucru nou create.

Creați un ribon nou, cu numele vostru. Redenumiți


grupul creat ca fiind grupul Personal și adăugați în
grupul astfel creat macrocomanda FormatareSelecție.

Salvați registrul cu numele macro-tab.

Exercițiul 7. Înregistrați un macro, cu referință absolută, cu numele


FormatareABC, în registrul de lucru Personal și care să formateze celulele
din intervalul A1:C10 astfel:

 Pentru primul rând folosiți următoarele setări: font alb și bold,


fundal albastru închis, chenar dublu albastru închis;

 Pentru restul rândurilor folosiți următoarele formatări: un chenar


simplu albastru închis, fundal de albastru deschis, cu font albastru
închis.

Aplicați macro-ul în mai multe foi de lucru diferite.

Pe ribonul cu numele vostru, în grupul Personal adăugați macrocomanda


FormatareABC.

2.3. Crearea unui buton grafic și asocierea cu o macrocomandă


Pentru a rula un macrou puteți să creați un buton grafic, căruia să-i asociați
macroul înregistrat, astfel încât la un simplu click să puteți rula macroul
înregistrat. Pentru a face acest lucru trebuie urmate etapele:

1. Deschideți registrul de calcul care are stocat macroul căruia


doriți să-i asociați un buton;

2. Afișați ribbonul Developer și în grupul Controls faceți click pe


butonul Insert;

© Alina Maria Stanculescu P a g i n a | 19


Excel Macro

3. În panoul afișat selectați prima comandă Button (Form


Control);

4. Având cursorul sub forma semnului plus mergeți în foaia de


lucru, acolo unde doriți să vă apară butonul, și executați un c lick pentru
a insera butonul.

5. În fereastra Assign Macro selectați macroul pe care doriți să-l


asociați cu butonul nou creat și apăsați butonul OK.

6. Modificați numele butonul selecând comanda Edit text din


meniul contextual.

Exercițiul 8. Deschideți registrul de calcul macro-tab,


creat în exercițiul anterior.

Inserați un butonul de tipul Form Button și asociați cu


acesta macroul FormatareABC.

Schimbați numele butonul astfel încât să se numească:


Formatare raport.

Rulați macroul creat folosind butonul inserat.

P a g i n a | 20 © Alina Maria Stanculescu


Excel Macro

Modulul 3 Modificarea macrourilor și


lucrul cu VB
După ce a fost creat un macrou este posibil să aveți nevoie să-l modificați, să
adăugați alte elemente. Modificarea unui macro se face în codul sursă al
acestuia cu Visual Basic.

Deși modificarea macrourilor ține de programarea unui macro, de lucrul cu


Visual Basic și face obiectul unui alt curs, este util să vedem și în cadrul acestui
curs cum arată codul sursă al unui macro și cum poate fi acesta modificat.

3.1. Familiarizarea cu VB
Atunci când înregistrați un macro , în oricare din aplicațiile din suita Office, de
fapt sunt scrise linii de cod în Visual basic, linii de cod care descriu operațiile
efectuate.

Pentru a vedea codul unui macro înregistrat trebuie doar să deschideți un


registru de lucru care are un macro înregistrat și să apăsați simultan tastele
Alt+F11.

Această comandă deschide aplicația Visual Basic for Application. Fereastra


aplicației VBA este împărțită în 2 secțiuni:

- Partea stângă conține panoul de navigare prin obiectele și


macrourile registrelor deschise;

- Partea dreaptă conține spațiul de lucru, spațiul unde poate fi


afișat și vizualizat un macro înregistrat.

Elementele care definesc începutul și sfârșitul unul macrou sunt: Sub și End
Sub. Între cele două elemente este scris macroul.
© Alina Maria Stanculescu P a g i n a | 21
Excel Macro

Exercițiul 9. Deschideți registrul de calcul excel_macro,


foia de lucru Ex9.

Având selectată celula A1, înregistrați un macro cu


referință relativă, în registrul curent, care să selecteze
celula C1.

Deschideți foia de lucru Ex9.1 și având selectată celula


A1, înregistrați un macro cu referință absolută, în
registrul curent, care să selecteze celula C1.

Deschideți VBA și analizați codurile celor 2 macrouri.


Observați diferențele dintre cele 2 macrouri.

3.2. Modificarea unui macro


Modificarea unui macro se poate face doar editând codul sursa al acestuia,
adică doar în VBA. Pentru a edita / modifica un macro înregistrat anterior
trebuie urmate etapele:

1. deschideți registrul de lucru care conține macroul pe care doriți


să-l editați;

2. din ribbonul Developer selectați comanda Macros;

3. în fereastra Macro selectați macroul pe care doriți să-l


modificați și apăsați butonul Edit;

4. în fereastra VBA editați macroul astfel încât să răspundă


nevoilor voastre;

P a g i n a | 22 © Alina Maria Stanculescu


Excel Macro

5. după ce ați făcut toate modificările salvați și închideți fereastra


VBA pentru a vă întoarce în registrul de lucru.

Atenție! Dacă nu sunteți familiarizați cu codurile VBA atunci, cea mai


bună soluție, pentru modificarea unui macro este re-înregistrarea
acestuia.

Observație: O altă soluție care poate fi folosită atunci când doriți să


modificați / editați un macro este să copiați secțiuni din alt macro și să le
lipiți în macroul curent.

Exercițiul 10. Deschideți registrul de calcul


excel_macro, foia de lucru Ex10.

Având selectată celula C1, înregistrați un macro cu


referință relativă, în registrul curent, care să selecteze
celula B1.

Înregistrați un macro cu referință relativă, în registrul


curent, care să aplice un fundal de culoare galbenă
celulei selectate.

Editați primul macro înregistrat. Copiați acea parte din


cel de-al doilea macro care aplică culoarea de fundal în
primul macro înregistrat.

Ștergeți cel de-al doilea macro înregistrat.

© Alina Maria Stanculescu P a g i n a | 23


Excel Macro

Editați macroul și schimbați culoarea de fundal


aplicată.

3.3. Cele mai des utilizate structuri de tip buclă pentru editarea
macrourilor
Cele mai des utilizate structuri de tip buclă, pentru a repeta anumite acțiuni,
sunt:

1. For – Next – această structură este utilă atunci când se cunoaște exact de
câte ori se va executa comanda.

Pentru a repeta de un număr fix de ori un macro înregistrat sau creat trebuie
respectată sintaxa:

For contor = început To sfârșit

Instrucțiuni macro înregistrat sau creat

Next

Argumentul contor trebuie să conțină variabila pe care trebuie să o ia în


considerare macroul atunci când executa comenzile înregistrate. Poate
reprezenta rânduri, un index, o listă de valori, etc. Începutul și sfârșitul sunt
valorile variabile care definesc capetele contorului între care va fi executat
macroul.

Exercițiul 11. Deschideți registrul de calcul


excel_macro, foia de lucru Ex11.

Înregistrați un macrou, cu referințe relative, în registrul


curent care să copie și să transpună datele de pe
verticală pe orizontală. Executați macroul în foia de
lucru Ex11.

Editați macroul astfel încât să fie un macrou tip buclă,


de tipul For...Next, care să ruleze macroul de un număr
determinat de ori, astfel încât să transpună toate
datele de pe verticală pe orizontală. Rulați macroul
astfel modificat în foia de lucru 11.1.

2. Do...Loop – această structură este utilă atunci când se dorește repetarea


unor comenzi / a unui macro de un număr nedefint de ori, până când se
îndeplinește o anumită condiție.

P a g i n a | 24 © Alina Maria Stanculescu


Excel Macro

Se poate folosi sintaxa While sau Until pentru a defini condiția ce


urmează să fie îndeplinită, dar nu amândouă.

Pentru a repeta un macro înregistrat sau creat până la îndeplinirea unei condiții
trebuie respectată sintaxa:

Do While / Until condiție

Instrucțiuni macro înregistrat sau creat

Loop

Condiția trebuie să fie o expresie care se evaluează cu adevărat sau fals.


Instrucțiunile macroului vor fi executate de atâtea ori, până când condiția va
avea valoare falsă.

Exercițiul 12. Deschideți registrul de calcul


excel_macro, foia de lucru Ex12.

Înregistrați un macrou, cu referințe relative, în registrul


curent care să copie și să transpună datele de pe
verticală pe orizontală. Executați macroul în foia de
lucru Ex12.

Editați macroul astfel încât să fie un macrou buclă, de


tipul Do...Loop, care să ruleze macroul de un număr
nedeterminat de ori, astfel încât să transpună toate
datele de pe verticală pe orizontală. Rulați macroul
astfel modificat în foia de lucru 12.1.

© Alina Maria Stanculescu P a g i n a | 25


Excel Macro

Modulul 4 Inregistrarea unui macro


complex

În Excel există o serie de operații care deși sunt simple, pot fi consumatoare
mari de timp. O astfel de operatie este formatarea înainte de tipărire. Deși
formatarea pagini înainte de tipărire este o operație care nu pune probleme
nimănui, atunci când faci aceeași operație de 2-3 ori pe zi, în fiecare zi, te poți
gândi să înregistrezi un macro care să automatizeze procesul de formatare. Pași
pentru înregistrarea unui macro care să formateze foaia de lucru înainte de
tipărire sunt următorii:

1. Deschideți registrul de calcul pe care doriți să-l formatați


înainte de tipărire;

2. Click pe ribbonul Developer și în grupul Macros faceți click pe


butonul Record Macro.

3. În fereastra de dialog Record Macro completați următoarele


câmpuri:

P a g i n a | 26 © Alina Maria Stanculescu


Excel Macro

a. Macro name – introduceți un nume pentru macroul ce


urmează să fie înregistrat;

b. Shortcut Key – combinația de taste pe care urmează să


o folosiți pentru a rula macroul;

c. Store macro in – selectați Personal Macro Workbook


pentru a face macroul accesibil din orice registru de calcul;

d. Description – introduceți o descriere pentru macroul


ce urmează să fie înregistrat;

e. Apăsați butonul OK.

4. În ribbonul Page Layout afișați fereastra Page setup făcând


click pe pătratul mic însățit de o săgeată aflat în grupul Page setup.

5. În fereastra Page setup faceți setările dorite pentru fila


dumneavoastră de lucru. După ce ați făcut toate setările apăsați
butonul OK.

6. În ribbonul Developer faceți click pe butonul Stop Recording


Macro pentru a opri înregistrarea macroului.

Exercițiul 13. Deschideți registrul de calcul pe care


doriți să-l formatați înainte de tipărire. Înregistrați un
macro, în registrul Personal, căruia să îi asociați
shortcut-ul Ctrl+Shift+P și care să formateze foaia de
lucru astfel:

- Tipărire Activ Sheet cu repetarea capului de


tabel pe fiecare pagină;

- Tipărirea pe foi A4, Portret;

- Inserearea unui Antet personalizat care să


conțină numele dumneavoastră și data curentă;

- Inserarea unui subsol personalizat care să


conțina sigla firmei (redimensionată la maxim 1 cm
înălțime) și numărul de pagini.

Rulați macroul în alte foi de calcul.

© Alina Maria Stanculescu P a g i n a | 27


Excel Macro

4.1. Înregistrarea unui macro care să copieze doar valorile


O altă funcție care pot fi automatizată prin intermediul macrourilor este
copierea volorilor / rezltatelor unei formule. Deși copierea și lipirea datelor ca
valoare este o operație banală pe care orice utilizator o poate executa fără
probleme, atunci când trebuie efectuată de mai multe ori, acest lucru poate fi
automatizat. Pentru a înregistra un macro care să realizeze copierea datelor ca
valori trebuie urmate etapele:

1. Se deschide registrul de calcul unde se dorește copierea


rezultatelor unor formule ca valori;

2. Se selectază prima celulă din coloana care conține datele ce


urmează să fie copiate și lipite ca valori;

3. Din ribbonul Developer se face click pe comanda Record macro


(Atenție! Se vor folosi referințe relative);

4. În fereastra Record Macro introduceți un nume, un shortcut și


o descriere pentru macroul ce urmează să fie înregistrat;

5. Se selectează toată coloana ce conține rezultatele formulei a


cărei volori dorim să le copiem (Ctrl+Shift+Săgeată în jos pentru a
selecta toate valorile din coloană);

6. Se apasă simultan tastele Ctrl+C sau din ribbonul Home se


selectază comanda Copy;

7. Se selectează prima celulă din coloana în care urmează să fie


lipite valorile copiate;

8. În ribbonul Home se face click pe săgeata din partea de jos a


butonului Paste, și se selectează comanda Paste value;

9. Se oprește înregistrarea macroului.

Exercițiul 14. Deschideți registrul de calcul


excel_macro, foia de lucru Ex14.

Înregistrați un macrou, cu referințe relative, în registrul


curent care să copie și să lipească doar valorile din
coloana E în coloana F. Aplicati macroul creat și în foaia
de lucru Ex14.1.

P a g i n a | 28 © Alina Maria Stanculescu


Excel Macro

4.2. Înregistrarea unui macro pentru filtrare


avansată

Avantajul înregistrări și folosiri macrourilor este acela că permite automatizarea


acelor funcționalități care sunt folosite în mod curent de utilizator. Una dintre
funcțiile care pot fi automatizate prin intermediul macrourilor este Filtrarea
avansată. Pentru a înregistra un macro care să realizeze filtrarea avansată
trebuie urmate etapele:

1. Se deschide registrul de calcul unde se dorește filtrarea


avansată a datelor;

2. Se crează, dacă nu este deja creat, panoul cu criteriile de


filtrare;

3. Din ribbonul Developer se face click pe comanda Record


macro;

4. În fereastra Record Macro introduceți un nume, un shortcut și


o descriere pentru macroul ce urmează să fie înregistrat;

5. Înregistrați macroul în registrul curent și apăsați butonul OK


pentru a începe înregistrarea macroului.

Atenție! Macroul va fi înregistrat cu referință absolută prin urmare se


va urmări ca butonul Use Relative References să nu fie selectat și se
va avea în vedere că orice click / orice celulă selectată va fi
înregistrată ca selecție în codul macroului.

6. Din ribbonul Data faceți click pe butonul Advanced Filter aflat


în grupul Sort&Filter.

© Alina Maria Stanculescu P a g i n a | 29


Excel Macro

7. În fereastra Advanced Filter selectați domeniul / tabelul pe


care doriți să-l filtrați;

8. Selectați zona în care aveți introduse criteriile de filtrare;

9. Apăsați butonul Ok;

10. Abăsați butonul Stop Recording din ribbonul Developer.

Exercițiul 15. Deschideți registrul de calcul unde doriți


să faceți o filtrare avansată. Înregistrați un macro, în
registrul curent, căruia să îi asociați shortcut-ul
Ctrl+Shift+F și care să filtreze datele din tabel după 2
criterii. Creați un buton căruia să-i asociați macroul
creat.

Schimbați criteriile de filtrare și rulați macroul făcând


click pe butonul creat.

P a g i n a | 30 © Alina Maria Stanculescu


Excel Macro

4.3. Înregistrarea unui macro pentru automatizarea


instrumentului GoalSeek
Instrumentul Goal Seek îi permite utilizatorului să ajungă la rezultatul dorit prin
modificarea unei singure variabile din formula. Dacă de exemplu vreți să vedeți
ce adaos trebuie să puneți pentru ca prețul final al unui produs să fie X, puteți
folosi instrumentul Goal Seek. Pentru a înregistra un macro care să
automatizeze folosirea instrumentului Goal Seek trebuie urmate etapele:

1. deschideți registrul de lucru unde doriți să folosiți instrumentul


Goal Seek pentru aflarea unor rezultate;

Sfat: înregistrarea unui macro pentru automatizarea găsiri rezultatului


este utilă atunci când se dorește ajungerea la același rezultat în mai
multe înregistrări. De exemplu: identificarea procentului reduceri
acordate unei serii de produse a căror preț , în urma reduceri finale, a
devenit unic (toate articolele din colecția de vara au prețul de 29,99 lei.
Care este procentul reducerii din prețul total?).

2. selectați prima celulă care conține formula a cărui rezultat îl


cunoașteți și care va fi schimbat la valoare dorită, prin modificarea unei
variabile din formulă, a cărei valoare va fi determinată de instrumentul
Goal Seek;

3. din ribbonul Developer selectați comanda Use Relative


References (dacă se dorește folosirea macroului pentru căutarea
rezultatului în mai multe celule), apoi click pe Record Macro;

4. În fereastra Record Macro introduceți un nume, un shortcut și


o descriere pentru macroul ce urmează să fie înregistrat;

© Alina Maria Stanculescu P a g i n a | 31


Excel Macro

5. Înregistrați macroul în registrul curent și apăsați butonul OK


pentru a începe înregistrarea macroului.

6. Din ribbonul Data selectați din meniul What if Analisys


comanda Goal Seek;

7. În fereastra Goal Seek stabiliți în câmpul Set cell celula care


conține formula a cărui rezultat îl cunoașteți și care va fi schimbat la
valoare introdusă în câmpul To value;

8. Introduceți în câmpul By changing cell celula a cărei valoare


doriți să o aflați, a cărei valoare este variabilă și va fi modificată pentru
a obține valoarea stabilită pentru Set cell;

9. Apăsați butonul OK;

10. Abăsați butonul Stop Recording din ribbonul Developer.

Exercițiul 16. Deschideți registrul de calcul


excel_macro, sheet-ul Ex 16. Înregistrați un macro
care să aplice instrumentul Goal Seek pentru
identificarea cheltuielilor lunare în condițiile în care
profitul calculat trebuie să fie de 15000. Înregistrați
macroul în registrul curent. Aplicați macroul pentru a
calcula valoarea cheltuielilor pentru fiecare lună în
parte.

4.4.Realizarea unui macro interactiv


În unele situații este nevoie ca atunci când un macro rulează utilizatorul să
intervină pentru a introduce o anumită valoare. De exemplu, la înregistrarea
macroului pentru automatizarea instrumentului GoalSeek am introdus din start
valoare finală la care dorm să ajungem, fiindcă am presupus că valoarea
profitului este aceeași pentru toate lunile. Dar dacă dorim să introducem o
P a g i n a | 32 © Alina Maria Stanculescu
Excel Macro

valoare diferită de fieare dată, atunci am avea nevoie de o casetă de input în


care utilizatorul să poată introduce valoarea dorită.

Pentru a afisa o casetă de input, care să îi permită utilizatorului să introducă o


valoare anume, trebuie editat codul VBA. Pentru a edita codul VBA în vederea
afisării unei casete de input trebuie urmate etapele:

1. Deschiderea registrului de lucru care conține acel macrou pe


care dorim să-l edităm;

2. Se apasă simultan tastele Alt+F11 pentru a afișa mediul de


programare Visual Basic for Application;

3. Se identifică modulul care conține macroul ce urmează să fie


editat și se deschide;

4. Imediat sub zona de comentarii a macroului se scrie următorul


cod:

Nume Identificare Caseta de input (acesta poate fi orice nume, atentie


la spatii) = Application.InputBox(Prompt, Title, Default, Left, Top,
HelpFile, HelpContextID, Type)

© Alina Maria Stanculescu P a g i n a | 33


Excel Macro

Argument Tip Descriere


informatie

Prompt Obligatoriu Mesajul ce va fi afișat de


caseta de input.

Title Opțional Titlul casetei de input. Dacă


nu este completat atunci
valoarea implicită este
INPUT.

Default Opțional Valoarea implicită a


câmpului atunci când caseta
este afișată.

Left Opțional Specifică poziția pe


orizontală, pornind de la
colțul din stânga sus al
ecranului, măsurată în
puncte.

Top Opțional Specifică poziția pe verticală,


pornind de la colțul din
stânga sus al ecranului,
măsurată în puncte.

HelpFile Opțional Numele fișierului de Ajutor


pentru această casetă de
dialog. Dacă argumentele
HelpFile și HelpContextID
sunt specificate, atunci în
caseta de input va fi afișat
un buton de ajutor.

HelpContextID Opțional Valoare numerică ce


reprezintă numărul
Ajutorului de context
atribuit subiectului.

P a g i n a | 34 © Alina Maria Stanculescu


Excel Macro

Pentru a stabili ca valoare rezultat a instrumentului Goal Seek să fie preluată


din valoarea introdusă prin caseta de input trebuie să se înlocuească în codul
VBA valoarea introdusă inițial, atunci când s-a înregistrat macroul, cu numele
de indetificare al casetei de input.

Exemplu: Atunci când s-a înregistrat macroul care stabilește valoarea finală a
profitului la 15000, codul VBA era de forma:

Sub GoalSeekPretFinal()

ActiveCell.GoalSeek Goal:=15000, ChangingCell:=ActiveCell.Offset(0, -1). _

Range("A1")

ActiveCell.Offset(1, 0).Range("A1").Select

End Sub

Dacă se dorește preluarea valorii dintr-o casetă de input atunci se va înlocui în


codul VBA valoarea 15000 cu numele de identificare al casetei de input și codul
va arăta astfel:

Sub GoalSeekPretFinal()

A = Application.InputBox("Care este valoarea finala?")

ActiveCell.GoalSeek Goal:=A, ChangingCell:=ActiveCell.Offset(0, -1). _

Range("A1")

ActiveCell.Offset(1, 0).Range("A1").Select
© Alina Maria Stanculescu P a g i n a | 35
Excel Macro

End Sub

Exercițiul 17. Deschideți registrul de calcul


excel_macro, foia de calcul Ex17. Modificați macroul
înregistrat la exercițiul 16, astfel încât valoarea finală la
care se raportează instrumentul Goal Seek să fie
preluată dintr/o casetă de dialog.

Rulați macroul și în alte foi de calcul.

4.5. Crearea unui macro pentru sortarea datelor după o coloană si


a crearea subtotalurilor într-un tabel
O altă operație care poate fi automatizat prin crearea unui macro este
inserarea de subtotaluri în cadrul unui tabel. Întotdeauna, înainte de
înregistrarea unui macro complex, este bine să se parcurgă toate etapele ce
urmează să fie înregistrate, astfel încât să se obțină rezultatul dorit.

Astfel, în cazul subtotalurilor, o etapă preliminară înregistrării macroului este


definirea unei zone dinamice (name range dinamic) pentru coloana după care
se face sortarea și după întregul tabel. Acest lucru este util mai ales atunci când
numărul de înregistrări este variabil.

Definirea unei zone dinamice se face cu funcția Offset. Sintaxa este


următoarea:

P a g i n a | 36 © Alina Maria Stanculescu


Excel Macro

OFFSET(referință, rânduri, col, [înalt], [lățime])

Referință - Obligatoriu. Este referința de la care vreți să stabiliți punctul de


plecare. Referință trebuie să facă referire la o celulă sau o zonă de celule
adiacente; altfel, OFFSET întoarce valoarea de eroare #VALUE!.

Rânduri - Obligatoriu. Este numărul de celule, în jos sau în sus, la care vreți să
se refere celula din stânga sus. Utilizând 5 ca argument specificați că celula din
stânga sus din referință este la 5 rânduri sub referință. Argumentul rânduri
poate fi pozitiv (adică sub referința de plecare) sau negativ (adică deasupra
referinței de plecare).

Col - Obligatoriu. Este numărul de coloane, spre dreapta sau spre stânga, la
care vreți să se refere celula din stânga sus. Utilizând 5 ca argument specificați
că celula din stânga sus din referință este la 5 coloane spre dreapta referinței.
Argumentul col poate fi pozitiv (adică la dreapta referinței de plecare) sau
negativ (adică la stânga referinței de plecare).

Înalt - Opțional. Este înălțimea, în număr de rânduri, pe care vreți să o aibă


referința returnată. Înalt trebuie să fie un număr pozitiv.

Lat - Opțional. Este lățimea, în număr de coloane, pe care vreți să o aibă


referința returnată. Lat trebuie să fie un număr pozitiv.

Pentru a stabili o zonă dinamică sintaxa functiei trebuie să fie de tipul:

Offset($A&2,0,0,count($A:$A)-1) – unde:

- $A&2 – referință absolută la celula A2, prima celulă din zona dinamică
ce urmează să fie definită;

- 0 – referința nu se mută nici un rând în sus sau în jos și nici o coloana în


stânga sau în dreapta;

- count($A:$A)-1 – stabileste numărul de rânduri ce vor fi returnate.


Fiindca dorim sa avem numarul total de randuri in care avem inregistrari se
va folosi functia COUNTA, pentru a numara celulele care contin valori. Se
scade 1 din rezultatul total pentru ca primul rand / prima celula, este cea
de titlu.

După crearea celor 2 zone dinamice se face înregistrarea macroului pentru


sortarea datelor după zona dinamică și pentru inserarea subtotalurilor.

Pentru a înregistra macroul trebuie urmate etapele:

1. având deschis registrul de calcul în care au fost create cele 2


zone dinamice se selectează comanda Record Macro din ribbonul
Developer;
© Alina Maria Stanculescu P a g i n a | 37
Excel Macro

2. în fereastra Record Macro se introduce un nume, o scurtătură


și o descriere pentru macroul ce urmează să fie înregistrat și se apasă
butonul OK. După apăsarea butonul OK, orice click efectuat este
înregistrat și va fi redat apoi la rularea macroului;

3. se selectează prima celulă din coloana după care se dorește să


se facă sortarea, respectiv celula care conține numele coloanei
respective;

4. din ribbonul Data se face click pe comanda Subtotals și în


fereastra deschisă se face click pe butonul Remove All pentru a șterge
toate subtotalurile existente în tabel;

5. din ribbonul Data se apasă butonul Sort A to Z sau Sort Z to A;

6. din ribbonul Data se face click pe comanda Subtotals și în


fereastra afișată se selectează coloana după care se dorește să se facă
gruparea informațiilor, tipul de funcție ce urmează să fie folosit și
câmpul ce va fi luat în calcul, apoi se apasă butonul OK;

7. se oprește înregistrarea macroului;

8. se apasă simultan tastele Alt+F11 pentru a afișa aplicația


Visual Basic for Application pentru a modifica codul, astfel încât să ia
în calcul cele 2 zone dinamice create anterior. Se identifică modulul
care conține macroul creat și se afișează;

9. se identifică acea parte din cod care face referire la coloana


după care se face sortarea. Partea respictivă de cod trebuie să fie de
forma: Sort.SortFields.Add Key:=Range("E1"). Cu precizarea că în
paranteze, între ghilimele trebui să fie trecută prima celulă a coloanei
după care se face sortarea (deci de la caz la caz între ghilimele poate fi:
A1, B7, C9, etc). Pentru că se dorește sortarea după o zonă dinamică se
va înlocui referința către celula respectivă cu numele zonei dinamice
create anterior după coloana de sortare. Deci partea respectivă de cod
va trebui să fie de tipul: Sort.SortFields.Add Key:=Range("Oras"). S-a
înlocuit practic celula E1 cu zona dinamică Oras.

10. Se identifică acea parte din cod care face referire la întreaga
zonă de date, respectiv tabelul. Partea respectivă de cod trebuie să fie
de tipul: .SetRange Range("A2:H69"). Între ghilimele trebuie să se
regăsească referințele pentru tot tabelul. Acestea trebuie înlocuite cu
numele zonei dinamice create anterior pentru tabel. Astfel codul va
deveni: .SetRange Range("tabel"). S-a înlocuit practic zona de celule
A2:H26 cu zona dinamică numită tabel. Acest lucru va face posibilă
sortarea tuturor înregistrărilor adăugate la tabelul inițial.

P a g i n a | 38 © Alina Maria Stanculescu


Excel Macro

11. Se salvează și se închide VBA. Se introduc date noi în tabel și se


rulează macroul pentru verificare.

Exercițiul 18. Deschideți registrul de calcul


excel_macro, foia de calcul Ex18. Creați 2 zone
dinamice cu ajutorul funcției Offset: una pentru
coloana oraș și cealaltă pentru tot tabelul.

Planificați și înregistrați un macro care să sorteze


datele de pe coloana Oraș și să adauge un rând de
subtotaluri pentru coloana Concediu. Modificați
macroul înregistrat astfel încât să facă sortarea după
zona dinamică oras în toată zona dinamică tabel.
Adăugați înregistrări noi și rulați macroul.

Editați macroul și adăugați o casetă de input care să


permită stabilirea coloanei după care să se facă
subtotalul. Rulați macroul.

© Alina Maria Stanculescu P a g i n a | 39


Excel Macro

Modulul 5: Simplificarea si protejarea


unui macro

5.1. Cum sa faci un macro usor de înțeles


Atunci când înregistrezi un macro nou este bine să introduceți o descriere
exactă a ceea ce face macroul respectiv, pentru a ști exact la ce să vă așteptați
atunci când îl rulați. Dacă veți edita macroul respectiv în VBA, și îi veți adăuga
funcționalități noi, atunci este bine ca acest lucru să se regăsească în descrierea
macroului, astfel încât macroul să fie ușor de citit și de înțeles.

Dacă înainte de înregistrarea macroului introduceți o descriere a acestuia în


fereastra Record Macro, această descriere se va regăsi în fereastra Macro
atunci când selectați macroul pe care doriți să-l rulați.

Dacă doriți să modificați descrierea macroului puteți face acest lucru în 2


moduri:

I:

1. Click pe comanda Macro din ribbonul Developer ;

2. Selectați macroul a cărei descriere doriți să o modificați;

3. Apăsați butonul Options...;

P a g i n a | 40 © Alina Maria Stanculescu


Excel Macro

4. În fereastra afișată editați descrierea macroului astfel încât


aceasta să corespundă cu nevoile voastre;

5. Se apasă butonul OK. Descrierea macroului astfel modificată se


regăsește și în fereastra Macro atunci când macroul respectiv este
selectat.

II. A doua metodă presupune editarea zonei de comentarii în VBA. Zona de


comentarii a unui macro este reprezentată de rândurile care sunt precedate de
apostrof. Acestea se regăsesc imediat sub numele macroului în partea de sus a
acestuia. Orice utilizator poate adăuga linii de comentarii în VBA, cu condiția ca
la începutul rândului să pună un apostrof, astfel încât să nu fie luat în calcul ca
și linie de cod.

Modificările aduse descrierii macroului direct în codul VBA nu se vor regăsi în


fereastra Macro atunci când macroul respectiv este selectat.

© Alina Maria Stanculescu P a g i n a | 41


Excel Macro

Exercițiul 19. Deschideți registrul de calcul


excel_macro, foia de calcul Ex19. Creați un macro în
registrul curent cu numele FormatareCelule, shortcut
Ctrl+Shift+W, și descrierea: Formatează celulele
A1:E11. Aplicați următoarea formatare celulelor
A1:E11:

- Ștergeți toate formatările și tot conținutul


existent în celulele selectate;

- Aplicați chenar negru subțire;

- Fundal Orange, Accent 6 pentru capul de


tabel;

- Chenar negru gros pentru capul de tabel;

- Font bold și caractere roșii pentru capul de


tabel;

- În celulele A1:E1 se introduc zilele lucrătoare


ale săptămânii.

Rulați macroul în foia de lucru Ex19.1.

Modificați descrierea macroului astfel încât aceasta să


fie afișată în fereastra Macro. Descriere noua:
Formatare raport saptamanal.

Rulați macroul.

Modificați descrierea astfel încât aceasta să nu fie


afișată în fereastra Macro. Descriere noua: Formatează
celulele A1:E11 pentru realizarea raportului
saptamanal.

5.2. Simplificarea cotinutului unui marco


După ce ați înregistrat un macro este bine să mergeți în codul VBA și să
încercați să ștergeți acele linii de cod care nu sunt necesare și care măresc
dimensiunea fișierului și îngreunează rularea acestuia. Atunci când un macrou
este înregistrat și nu scris direct în cod, aplicaia înregistrează toate clickurile
făcute de utilizator. O parte dintre aceste sunt inutile macroului și nu fac decât
să mărească dimeniunea fișierului. Încercați să citiți fiecare linie de cod și
ștergeți acele linii care fac referire la operații implicite.

P a g i n a | 42 © Alina Maria Stanculescu


Excel Macro

Sfat! Întotdeauna, înainte de a începe operația de ”curățare” a unui macro,


copiați-l așa cum a fost înregistrat inițial într-un fișier de tip text, astfel încât să
puteți reveni asupra lui dacă lucrurile nu funcționează așa cum ar trebui.

Exemple de linii de cod care pot fi șterse:

Macro care aplică un chenar negru subțire selecției și o culoare verde de


fundal.

Macro înregistrat Macro simplificat

Sub FormatareCelule() Sub FormatareCelule()


' ' FormatareCelule Macro
' FormatareCelule Macro ' Formatarea celulelor selectate cu
' Formatarea celulelor selectate cu chenar negru subtire si fundal verde.
chenar negru subtire si fundal ' Keyboard Shortcut: Ctrl+Shift+F
verde.
' Selection.ClearFormats
' Keyboard Shortcut: Ctrl+Shift+F With Selection.Borders(xlEdgeLeft)
' .Weight = xlThin
Selection.ClearFormats End With
Selection.Borders(xlDiagonalDow With Selection.Borders(xlEdgeTop)
n).LineStyle = xlNone .Weight = xlThin
Selection.Borders(xlDiagonalUp). End With
LineStyle = xlNone With
With Selection.Borders(xlEdgeBottom)
Selection.Borders(xlEdgeLeft) .Weight = xlThin
.LineStyle = xlContinuous End With
.ColorIndex = 0 With
.TintAndShade = 0 Selection.Borders(xlEdgeRight)
.Weight = xlThin .Weight = xlThin
End With End With
With With
Selection.Borders(xlEdgeTop) Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous .Weight = xlThin
.ColorIndex = 0 End With
.TintAndShade = 0 With
.Weight = xlThin Selection.Borders(xlInsideHorizontal)
End With .Weight = xlThin
With End With
Selection.Borders(xlEdgeBottom) With Selection.Interior
.LineStyle = xlContinuous .Pattern = xlSolid
.ColorIndex = 0 .Color = 5296274
.TintAndShade = 0 End With
.Weight = xlThin End Sub
© Alina Maria Stanculescu P a g i n a | 43
Excel Macro

End With
With
Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With
Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With
Selection.Borders(xlInsideHorizonta
l)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex =
xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Macro care adaugă 3 foi de lucru noi, la sfârșitul foilor de lucru existente,
cu numele Ianuarie, februarie, martie

Macro înregistrat Macro simplificat

Sub worksheetname() Sub worksheetname()


' 'worksheetname Macro
' worksheetname Macro 'Keyboard Shortcut: Ctrl+Shift+W
'
' Keyboard Shortcut: Ctrl+Shift+W ActiveSheet.Name = "Ianuarie"
' Sheets.Add(After:=Sheets(Sheets.Cou
Sheets("Ex20").Select nt)).Name = "Februarie"
P a g i n a | 44 © Alina Maria Stanculescu
Excel Macro

Sheets("Ex20").Name = Sheets.Add(After:=Sheets(Sheets.Cou
"Ianuarie" nt)).Name = "Martie"
Sheets.Add Sheets.Add(After:=Sheets(Sheets.Cou
After:=Sheets(Sheets.Count) nt)).Name = "Aprilie"
Sheets("Sheet9").Select Sheets("Ianuarie").Select
Sheets("Sheet9").Name = End Sub
"Februarie"
Sheets.Add
After:=Sheets(Sheets.Count)
Sheets("Sheet10").Select
Sheets("Sheet10").Name =
"Martie"
Sheets.Add
After:=Sheets(Sheets.Count)
Sheets("Sheet11").Select
Sheets("Sheet11").Name =
"Aprilie"
Sheets("Ianuarie").Select
End Sub

Exercițiul 20. Deschideți registrul de calcul


excel_macro, foia de calcul Ex20. Simplificați macroul
creat la exercițiul 19, FormatareCelule.

Înregistrați un macro nou care să insereze 3 foi de


calcul noi, la sfârșitul foilor de calcul exitente și să le
denumească astfel: Ianuarie, Februarie, Martie.
Simplificați macroul astfel creat.

5.3. Redenumirea unui macro


Atunci când înregistrați un macro nou este posibil ca din grabă sau lipsă de
inspirație să lăsați numele implicti al macroului sau să îi dați un nume pe care
mai târziu nu îl veți mai considera relevant. În această situație este bine să știți
cum puteți redenumi un macro.

1. Deschideți registrul de lucru în care aveți macroul pe care doriți


să-l redenumiți;

2. Din ribbonul Deveoper selectați comanda Macros sau apăsați


simultan tastele Alt+F8;

3. În fereastra Macro selectați macroul pe care doriți să-l editați și


apăsați butonul Edit. Acest lucru va duce la afișarea editorului VBA.
© Alina Maria Stanculescu P a g i n a | 45
Excel Macro

4. În partea de sus a macroului se regăsește cuvântul Sub (cel care


anunță începerea unui macro nou), după care vine numele macroului
urmat de un set de paranteze;

5. Modificați numele macroului după cum doriți (ATENȚIE!


Numele macroului nu poate să conțină pauze sau caractere speciale),
dar nu modificați / ștergeți cuvântul Sub sau parantezele de după
numele macroului;

6. Salvați și închideți editorul VBA.

Exercițiul 21. Deschideți registrul de calcul


excel_macro, foia de calcul Ex21.

Adăugați în foia de lucru un buton care să aibă asociat


macroul creat la exercițiul 19, FormatareCelule. Rulați
macroul prin apăsarea butonului astfel creat.

Redenumiți macroul creat la exercițiul 19,


FormatareCelule, astfel încât numele acestuia să fie
FormatareRaportSptamanal.

Rulați macroul prin apăsarea butonul creat.

5.4. Protejarea macroului cu parola


Dacă după ce ați înregistrat o macrocomandă doriți să o protejați astfel încât
aceasta să nu poată fi editată de altcineva, puteți face acest lucru prin
intermediul unei parole. Pentru a proteja un macro cu o parolă trebuie urmate
etapele:

1. Deschideți registrul de calcul care conține macroul pe care


doriți să-l editați;

2. Din ribbonul Deveoper selectați comanda Macros sau apăsați


simultan tastele Alt+F8;

3. În fereastra Macro selectați macroul pe care doriți să-l editați și


apăsați butonul Edit. Acest lucru va duce la afișarea editorului VBA.

4. În editorul VBA selectați din meniul Tools comanda VBAProject


Properties;

P a g i n a | 46 © Alina Maria Stanculescu


Excel Macro

5. În fereastra deschisă click pe tabul Protection;

6. Introduceți parola dorită în cele 2 câmpuri și apăsați butonul


OK. Închideți editolul VBA și registrul de lucru. La redeschiderea
registrului de lucru macrourile protejate nu vor mai putea fi editate
fără introducerea parolei.

© Alina Maria Stanculescu P a g i n a | 47


Excel Macro

Exercițiul 22. Deschideți registrul de calcul


excel_macro, foia de calcul Ex22.

Protejați macrourile din registrul de lucru curent cu o


parolă. Închideție registrul și redeschideți-l pentru a
verifica că macrocomenzile nu pot fi editate. Scoateți
parola.

5.5. Folosirea Macro Virus Protection

Un virus macro este un virus care poate distruge fișierul deschis și care,
eventual, se poate răspândi și la celelalte registre de lucru din calculator pentru
a șterge sau modifica informațiile existente. Trimițând regirtul de lucru prin
intermediul emailului puteți răspândi virusul și în alte calculatoare. Pentru a
evita acest lucru este bine să vă protejați calculatorul și munca prin stabilirea
nivelului de securitate adecvat.

Pentru a stabili nivelul de securitate acceptat pentru macrouri trebuie să urmați


etapele:

1. Din ribbonul Developer selectați comanda Macro security;

2. În fereastra afișată stabiliți nivelul de securitate dorit și apăsați


butonul Ok. Cele 4 nivele de securitate sunt:

a. Disable all macros without notification- Se


dezactivează toate macrocomenzile, fără notificare Faceți clic
pe această opțiune dacă nu acordați încredere
macrocomenzilor. Toate macrocomenzile din documente și
P a g i n a | 48 © Alina Maria Stanculescu
Excel Macro

avertizările de securitate despre macrocomenzi sunt


dezactivate.

b. disable all macros with notification - Se dezactivează


toate macrocomenzile, cu notificare Aceasta este setarea
implicită. Faceți clic pe această opțiune dacă doriți ca
macrocomenzile să fie dezactivate, dar să primiți avertizări de
securitate dacă sunt prezente macrocomenzi. Astfel aveți
posibilitatea să alegeți când să activați aceste macrocomenzi,
de la caz la caz.

c. Disable all macros except digitally signed macros - Se


dezactivează toate macrocomenzile cu excepția
macrocomenzilor semnate digital Această setare este
identică cu Se dezactivează toate macrocomenzile, cu
notificare, cu excepția faptului că, dacă macrocomanda este
semnată digital de un editor de încredere, macrocomanda se
poate activa dacă deja ați acordat încredere editorului. Dacă nu
ați acordat încredere editorului, veți fi anunțat. Astfel aveți
posibilitatea să alegeți dacă activați aceste macrocomenzi
semnate sau acordați încredere editorului. Toate
macrocomenzile nesemnate sunt dezactivate, fără notificare.

d. Enable all macros - Se activează toate macrocomenzile


(nerecomandat) Faceți clic pe această opțiune pentru a
permite executarea tuturor macrocomenzilor. Deoarece
această setare face computerul vulnerabil la codurile potențial
rău intenționate, nu recomandăm să o utilizați.

Exercițiul 23. Deschideți registrul de calcul


excel_macro, foia de calcul Ex23.

Schimbați nivelul de securitate pentru macrocomenzi,


astfel încât acestea să fie dezactivate, iar utilizatorul să
fie avertizat cu privire la existența macrourilor în
registrele de calcul.

5.6. Crearea unei semnături digitale personale


O semnătură digitală este un marcaj electronic de securitate care se poate
adăuga fișierelor. Permite verificarea editorului fișierului și vă ajută să verificați
dacă fișierul nu s-a modificat de când a fost semnat digital.

© Alina Maria Stanculescu P a g i n a | 49


Excel Macro

Prin urmare crearea și folosirea de certificate de securitate pentru semnarea


macrocomenzilor este o practică care ajută la protejarea împotrivarea virușilor
și la recunoașterea macrourilor.

Și în România există firme care crează semnături digitale / electronice extinse,


semnături care au aceeași valoare cu semnătura olografă și care sunt folosite în
tranzacții financiare, în instanță, etc. Acest tip de semnătură electronică extinsă
este utilizată de regulă de firme și mai puțin de persoane fizice.

Pentru aplicațiile din suita Office poate fi creată o semnătură digitală pentru a
autosemna fișierele create. Pentru a crea o semnătură digitală personală
trebuie urmate etapele:

1. Click pe butonul Start;

2. All Programs, click pe Microsoft Office, click pe Microsoft


Office Tools, click pe Digital Certificate for VBA Projects;

3. În caseta Your Certificate’s name: întroduceți un nume pentru


certificatul digital și apăsați butonul Ok;

P a g i n a | 50 © Alina Maria Stanculescu


Excel Macro

4. Apăsați butonul OK și în fereastra care vă anunță că semnătura


digitală a fost creată cu succes.

5.7. Adăugarea unei semnături digitale


Pentru a adăuga o semnătură digitala unui fișier ce conține macrocomenzi
trebuie urmate etapele:

1. Deschideți registrul de lucru care conține cacrocomenzile pe


care doriți să lesemnați.

2. În ribbonul Developer, faceți clic pe Visual Basic.

3. În Visual Basic, în meniul Tools, faceți clic pe Digital Signature;

4. În fereastra de dialog Digital Signature click pe butonul Choose


pentru a alege semnătura pe care doriți să o folosiți;

© Alina Maria Stanculescu P a g i n a | 51


Excel Macro

5. Selectați certificatul dorit și apăsați butonul OK;

6. faceți clic pe OK și închideți editorul VBA.

Exercițiul 24. Deschideți registrul de calcul


excel_macro, foia de calcul Ex24.

Creați o semnătură digitală cu numele și prenumele


dumneavoastră.

Adăugați semnătura creată macrocomenzilor din


fișierul excel_macro.

P a g i n a | 52 © Alina Maria Stanculescu


Excel Macro

5.8. Adăugarea unei semnaturi digitala la lista de surse de


incredere
Atunci când încercați să deschideți un registru de lucru care are o
macrocomandă utilizatorul este avertizat, printr-o bară de mesaje, asupra
faptului că registrul respectiv are macrocomenzi, utilizatorul având posiblitatea
să aleagă dacă dorește sau nu să activeze conținutul astfel:

1. Click pe butonul Enable Content aflat pe bara de mesaje;

2. Astfel registrul se deschide și poate rula macrocomenzile


asociate. Acest lucru însă nu face ca și persoana care a realizat
macrocomanda respectivă să fie de încredere.

Pentru a adăuga certificatul digital la lista de editori de încredere se


parcurg etapele:

1. Se deschide registrul de calcul care conține o semnătură


digitală;

2. De la File, tab-ul Info, Security Warning, click pe săgeata


butonului Enable Content;

© Alina Maria Stanculescu P a g i n a | 53


Excel Macro

3. Din meniul afișat se selectează opțiunea Advanced Options;

4. În fereastra afișată se bifează opțiunea Trust all documents


from this publisher (Se acordă încredere tuturor documentelor de la
acest editor) și se apasă butonul Ok.

P a g i n a | 54 © Alina Maria Stanculescu

S-ar putea să vă placă și