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.
- 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.
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. |
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.