Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Andrea,
ciao Norman ho provato e va bene anche la seconda versione, ti chiedo un'altra cosa, siccome il foglio ha una password ,devo rimuoverla per far funzionare la macro, so che c'è un codice che disattiva la password e dopo la riattiva....
Purtroppo, come hai scoperto, la proprietà Range.Precedents non funziona su un foglio protetto.
Per ovviare a questo problema, sostituisci il codice esistente con la seguente versione:
'========>>
Option Explicit
'-------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng1 As Range, Rng2 As Range, Rng3 As Range, Rng4 As Range
Const sCella As String = **"A1"** **'<<=== Modifica**
Const sCella2 As String = **"A2"** **'<<=== Modifica**
Const sPassword As String = **"Pippo" '<<=== Modifica**
With Me
.Unprotect Password:=sPassword
Set Rng1 = .Range(sCella)
Set Rng2 = .Range(sCella2)
On Error Resume Next
Set Rng3 = Intersect(Target, Rng1.Precedents)
Set Rng4 = Intersect(Target, Rng2.Precedents)
On Error GoTo XIT
End With
If Not Rng3 Is Nothing Or Not Rng4 Is Nothing Then
If Rng1.Value > Rng2.Value Then
Call MsgBox(Prompt:="Attenzione", \_
Buttons:=vbInformation, \_
Title:="REPORT")
End If
End If
XIT:
Me.Protect Password:=sPassword
End Sub
'<<========
Ho aggiornato il mio file di prova Andrea20230427.xlsm
Nota che il foglio Foglio1 è protetto con la password Pippo e le celle B1:B2, che alimentano le formule in A1:A2, sono sbloccate.
===
Regards,
Norman