Bloccare le celle contenenti formule

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 "Select one worksheet and try again"
     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 visulizzazione 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