Boa tarde a todos,
Quero, primeiramente, agradecer a ajuda de todos.
Tenho uma planilha que se atualiza quando há uma alteração em certos campos da mesma. Acontece que há um campo que precisa está zerado quando um outro é preenchido, então a planilha se atualiza também zerando aquele campo, só que este campo, sendo alterado, também atualiza a planilha, e, pelo que parece, ocorre um looping de atualizações até o erro e o fechamento da planilha.
Como faço para a planilha entender que na situação em que há a atualização automática do campo, a planilha não se atualize para que não ocorra o looping e consequentemente o erro?
Segue início do código... vou repetindo as instruções para cada Range....
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Dim KeyCells2 As Range
Dim KeyCells3 As Range
Dim KeyCells4 As Range
Dim KeyCells5 As Range
Dim KeyCells6 As Range
Dim KeyCells7 As Range
Set KeyCells = Range("i8")
Set KeyCells2 = Range("i9")
Set KeyCells3 = Range("Aj7")
Set KeyCells4 = Range("c13")
Set KeyCells5 = Range("c16")
Set KeyCells6 = Range("p8")
Set KeyCells7 = Range("p9")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Range("P8") = 0
Application.Goto ActiveWorkbook.Sheets("Calc").Range("c4")
ActiveSheet.Range("C4:aw5").Copy
Application.Goto ActiveWorkbook.Sheets("Cálculo Dígito Boleto").Range("C25:aw26")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
If Not Application.Intersect(KeyCells2, Range(Target.Address)) _
Is Nothing Then
Range("P9") = 0
Application.Goto ActiveWorkbook.Sheets("Calc").Range("c4")
ActiveSheet.Range("C4:aw5").Copy
Application.Goto ActiveWorkbook.Sheets("Cálculo Dígito Boleto").Range("C25:aw26")
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
...
End Sub
Se não ficou claro, me avisem por favor.
Fico grato,
Postado : 15/06/2017 1:05 pm