Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Ivo ,
ho il seguente problema: in un foglio Excel, intercetto l'evento "Workbook_Change" e a seconda della modifica faccio una cosa oppure l'altra. Nel caso, però, di errore, dovrei anche inserire un valore in un'altra cella: questo mi causa una nuova attivazione dell'evento Workbook_Change, ritrovo l'errore, e così via (loop!).
Come ne posso uscire? In questo senso vorrei "inibire" momentaneamente l'evento in questione una
Vedi la proprietà Application.EnableEvents.
Per un esempio banale, prova qualcosa del genere:
'=========>>
Option Explicit
'--------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, rCell As Range
Const sIntervallo As String = "A2:A20"
Const dVal As Double = 100
Set Rng = Intersect(Me.Range(sIntervallo), Target)
If Not Rng Is Nothing Then
On Error GoTo XIT
Application.EnableEvents = False
For Each rCell In Rng.Cells
With rCell
If .Value > dVal Then
.Offset(0, 1).Value = dVal * 2
Else
.Offset(0, 2) = dVal / 2
End If
End With
Next rCell
End If
XIT:
Application.EnableEvents = True
End Sub
'<<=========
===
Regards,
Norman