Buna,

Pentru mine, MS Excel este un program versatil, pe care il folosesc in fiecare zi si care ma ajuta foarte mult.

O data cu folosirea in mod intensiv a programului, am inceput sa gasesc zone unde este rigid.

Una din partile rigide ale MS Office este cea legata de protejarea sheet-urilor. In articolul de astazi, vom vedea cum putem folosi VBA pentru a proteja mai multe sheet-uri dintr-o data.

Configurarea fisierului

La fel ca atunci, cand folosim VBA pentru deblocarea mai multor sheeturi, fisierul trebuie sa indeplineasca o conditie foarte importanta: toate sheet-urile sa fie protejate cu aceeasi formula. In cazul in care conditia este indeplinita, urmati pasii de mai jos:

  • Deschideti editorul VB – cea mai simpla modalitate pentru a deschide editorul se realizeaza folosind combinatia de taste ALT + F11.

  • In bara de meniu selecteaza tab-ul Insert si apoi optiunea Module.insert_module
  • In fereastra care se deschide copiaza codul de mai jos

Sub Protect_all_sheets()

‘ Loop through all sheets in the workbook
For i = 1 To Sheets.Count

‘ Activate each sheet in turn.
Sheets(i).Activate

response = MsgBox(“Do you want to protect this sheet?”, vbYesNo)
If response = vbYes Then
ActiveSheet.Protect Password:=”parola”, DrawingObjects:=True, _
Contents:=True, Scenarios:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowFiltering:=True

ElseIf response = vbNo Then
MsgBox (“Sheet not protected”)

End If
Next i
End Sub

  •  In codul VBA modifica parola conform celei cu care au fost protejate sheet-urile.
  • Apoi apasa tasta F5 pentru a rula codul. O data cu rularea codului, se va trece prin fiecare sheet si vei fi intrebat daca doresti ca sheet-ul activ sa fie protejat. Daca apesi No, vei primi mesajul de mai jos.

sheet_not_protected

Atribute metoda Protect

In continuare, as vrea sa ne uitam pe metoda Protect si pe atributele ei.

expression .Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)expression este o variabila de tip Worksheet .

Nume Atribuit Descriere
Password Este o variabila de tip string in care se noteaza parola cu care a fost protejat sheet-ul. Daca sheet-ul nu a fost protejat folosind o parola, acest atribut se omite.
DrawingObjects Este o variabila de tip boolean. Se va nota True pentru protejarea formelor si altor desene din fisier. Valoarea implicita a acestui atribuit este True.
Contents Este o variabila de tip boolean. Se va nota True pentru protejarea intregului continut al sheet-ului. In cazul unui grafic, se va proteja intreg graficul, iar intr-un sheet se vor proteja celule care au optiunea Locked bifata. Valoarea implicita a acestui atribuit este True.locked
Scenarios Este o variabila de tip boolean. Se va nota True pentru protejarea scenariilor. Valoarea implicita a acestui atribuit este True.
UserInterfaceOnly Este o variabila de tip bolean. Se va nota True pentru protejarea interfetei utilizatorului, dar nu si a macro-urilor. Daca atributul este omis, se vor proteja atat macro-urile cat si interfata.
AllowFormattingCells Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de formatarea celulelor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowFormattingColumns Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de formatarea coloanelor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowFormattingRows Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de formatarea randurilor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowInsertingColumns Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de inserarea coloanelor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowInsertingRows Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de inserarea randurilor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowInsertingHyperlinks Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de inserarea link-urilor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowDeletingColumns Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de stergerea coloanelor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowDeletingRows Este o variabila de tip boolean. In cazul in care atributul se noteaza cu True, optiunile legate de stergerea randurilor vor fi disponibile utilizatorului. Valoarea implicita a acestui atribuit este False.
AllowSorting Este o variabila de tip boolean. Se va nota True pentru a permite utilizatorului realizarea operatiunilor de sortare in sheet-ul respectiv. Pentru acest lucru, fiecare celula din zona care se doreste sortata, trebuie sa aiba optiunea Locked nebifata. Valoarea implicita a acestui atribuit este False.
AllowFiltering Este o variabila de tip boolean. Se va nota True pentru a permite utilizatorului realizarea operatiunilor de filtrare in sheet-ul respectiv. Utilizatorul nu poate activa si dezactiva Auto Filter-ul, ci doar poate folosi Auto Filter-ul deja existent in sheet. Valoarea implicita a acestui atribuit este False.
AllowUsingPivotTables Este o variabila de tip boolean. Se va nota True pentru a permite utilizatorului realizarea operatiunilor legate de Pivot Table-urile existe in  sheet-ul. Valoarea implicita a acestui atribuit este False.

Comentarii si sugestii

Impartaseste experienta ta sau alte sfaturi utile legate folosirea VBA-ului.


Print pagePDF page
Share on Facebook0Share on Google+0Email this to someone