Ecco come proteggere con password un singolo foglio di lavoro con celle contenenti formule bloccate, tutte le altre celle sono sbloccate.
Sub LockOnlyCellsWithFormulas()
'Crea una variabile per gestire la password
Dim myPassword As Variant
'Se è selezionato più di un foglio di lavoro, esci dalla macro
If ActiveWindow.SelectedSheets.Count > 1 Then
'Mostra il messaggio d'errore e esci dalla macro
MsgBox "Seleziona un foglio di lavoro e riprova"
Exit Sub
End If
'Imposta la password
myPassword = Application.InputBox(prompt:="Inserisci la password", _
Title:="Password", Type:=2)
'L'utente ha cliccato su Annulla
If myPassword = False Then Exit Sub
'Tutte le istruzioni seguenti si applicano al foglio attivo
With ActiveSheet
'Ignora gli errori causati da password errate
On Error Resume Next
'Rimuovi la protezione dal foglio attivo
.Unprotect Password:=myPassword
'Se si presenta un errore esce dalla macro
If Err.Number <> 0 Then
'Mostra un messaggio e poi esce
MsgBox "Password errata"
Exit Sub
End If
'Ripristina la visualizzazione degli errori
On Error GoTo 0
'Rimuove blocco da tutte le celle
.Cells.Locked = False
'Imposta blocco per le celle con formule
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
'Protegge il foglio attivo
.Protect Password:=myPassword
End With
End Sub