Excel: Come possiamo rimuovere la password di un foglio o di una cartella di lavoro?

Quante volte ci siamo dimenticati in Excel la nostra password di protezione dei fogli o della cartella di lavoro?

Le offerte a tempo di Amazon

Ecco un modo per risolvere il nostro problema in brevissimo tempo:

Iniziamo aggiungendo un modulo al progetto VBA. Per i non esperti nell’uso del Editor VBA:

logo excel

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

2. Aprire l’Editor VBA (Alt+F11 oppure Strumenti>Macro>Visual Basic Editor

3. Nell’Editor aggiungere un modulo (Inserisci>modulo)

4. Copiare il codice che riporto qui sotto e incollarlo nel modulo appena creato

 

Option Explicit

Dim arr As Variant
Dim arr2(30) As Long

Sub IniziaArr2()
Dim i As Integer

arr = Array(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 _
, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, _
524288, 1048576, 2097152, 4194304, 8388608, 16777216, _
33554432, 67108864, 134217728, 268435456, 536870912, _
1073741824)
'valori da 2^0 a 2^30
For i = 0 To 30
arr2(i) = arr(i)
Next i
End Sub

Function decbin(dec As Long) As String
Dim i As Integer, a As Integer, bin As String

bin = "0" 'nel caso dec sia = 0
For i = 30 To 0 Step -1
If dec And arr2(i) Then
bin = ""
For a = i To 0 Step -1
Select Case dec And arr2(a)
Case 0
bin = bin & "0"
Case Else
bin = bin & "1"
End Select
Next a
Exit For
End If
Next i
decbin = bin
End Function

Sub psw2()
Dim i As Long
Dim start As Single
Dim bin As String

Call IniziaArr2

start = Timer
On Error Resume Next
i = 0
Do
i = i + 1
bin = decbin(i)
ActiveSheet.Unprotect Password:=bin
Loop While ActiveSheet.ProtectContents = True

MsgBox "La password è stata rimossa con " & _
bin & " che è il binario di " & i & _
Chr(10) & "il programma ha impiegato " & _
Timer - start & " secondi"

Debug.Print bin & " " & i
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

Il tempo necessario per rimuovere la protezione varia da pochi secondi a pochi minuti.

Fatemi sapere se avete risolto..

Ciao


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *