Sei sulla pagina 1di 3

http://www.informarea.it/post/2012/03/23/excel-come-possiamo-rimuoverela-password-di-un-foglio-o-di-una-cartella-di-lavoro.

aspx

1. Aprire la cartella di lavoro Excel su cui si desidera rimuovere la password


2. Aprire lEditor VBA (Alt+F11 oppure Strumenti>Macro>Visual Basic Editor
3. NellEditor aggiungere un modulo (Inserisci>modulo)
4. Copiare il codice che riporto qui sotto e incollarlo nel modulo appena
creato

?
1

Option Explicit

2
3

Dim arr As Variant

Dim arr2(30) As Long

5
6

Sub IniziaArr2()

Dim i As Integer

8
9

arr = Array(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 _

10

, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, _

11

524288, 1048576, 2097152, 4194304, 8388608, 16777216, _

12

33554432, 67108864, 134217728, 268435456, 536870912, _

13

1073741824)

14

'valori da 2^0 a 2^30

15

For i = 0 To 30

16

arr2(i) = arr(i)

17

Next i

18

End Sub

19

20

Function decbin(dec As Long) As String

21

Dim i As Integer, a As Integer, bin As String

22
23

bin = "0" 'nel caso dec sia = 0

24

For i = 30 To 0 Step -1

25

If dec And arr2(i) Then

26

bin = ""

27

For a = i To 0 Step -1

28

Select Case dec And arr2(a)

29

Case 0

30

bin = bin & "0"

31

Case Else

32

bin = bin & "1"

33

End Select

34

Next a

35

Exit For

36

End If

37

Next i

38

decbin = bin

39

End Function

40
41

Sub psw2()

42

Dim i As Long

43

Dim start As Single

44

Dim bin As String

45
46
47

Call IniziaArr2

48

start = Timer

49

On Error Resume Next

50

i=0

51

Do

52

i=i+1

53

bin = decbin(i)

54

ActiveSheet.Unprotect Password:=bin

55

Loop While ActiveSheet.ProtectContents = True

56
57

MsgBox "La password stata rimossa con " & _

58

bin & " che il binario di " & i & _

59

Chr(10) & "il programma ha impiegato " & _

60

Timer - start & " secondi"

61
62

Debug.Print bin & " " & i

63

End Sub

Dopo aver copiato il codice in altro in un Modulo VBA eseguite la Macro psw2:
dalla cartella Excel Strumenti>Macro>Macro scegliere psw2 e premere Esegui
dal Editor VBA premere F5 oppure Esegui>Esegui Sub/UserForm scegliere psw2 e
premere Esegui
Un messaggio vi avviser quando la protezione al vostro foglio attivo stata
rimossa.
Per rimuovere la protezione della cartella invece sufficiente utilizzare lo stesso
codice ma dovete fare alcune sostituzioni:

ActiveSheet.Unprotect diventa ActiveWorkbook.Unprotect

ActiveSheet.ProtectContents diventa ActiveWorkbook.ProtectStructure

Potrebbero piacerti anche