Innanzitutto grazie per la risposta e la precisione.
Ho fatto come hai detto ma è funzionato una volta sola, col foglio protetto e senza pw.
Con la pw non funziona più e anche col foglio non protetto non funziona.
Poi dà alcuna anomalie. Per esempio se il foglio non è protetto e cancello il contenuto di una cella si auto protegge!
Lunedi mando file con esempio.
Per ora grazie !
Non hai specificato che il file potesse essere lavorato anche senza protezione.
Per gestire questa ipotesi occorre intercettare lo stato della protezione del foglio.
Inoltre se il foglio viene protetto manualmente occorrerà poi impostare, nel progetto VBA, la pw utilizzata altrimenti non sarebbe in grado di eliminare la protezione.
In questo caso le istruzioni potrebbero essere messe all'inizio, con una condizione, in modo che se il foglio non è protetto non venga fatto nulla considerato che bloccare o sbloccare con foglio senza protezione non modifica la situazione.
Questo potrebbe essere il codice modificato:
Private Sub Worksheet_Change(ByVal Target As Range)
If Me.ProtectContents Then
Application.EnableEvents = False
Me.Unprotect
If Not Intersect(Target, Range("A1")) Is Nothing Then
If UCase(Range("A1").Value) = "NO" Then
Range("F1").MergeArea.Locked = True
Range("M1").MergeArea.Locked = True
Else
Range("F1").MergeArea.Locked = False
Range("M1").MergeArea.Locked = False
End If
End If
If Not Intersect(Target, Range("B2")) Is Nothing Then
If UCase(Range("B2").Value) = "NO" Then
Range("G2").MergeArea.Locked = True
Range("L6").MergeArea.Locked = True
Else
Range("G2").MergeArea.Locked = False
Range("L6").MergeArea.Locked = False
End If
End If
Me.Protect
Application.EnableEvents = True
End If
End Sub
Il file di esempio è lo stesso del precedente link.
ciao
ps ho modificato anche una parte per considerare anche il "no" in minuscolo in caso di modifica della cella A1.