dimorais, isto acontece devido a instrução : Application.EnableEvents = False, ou seja se Deletar apenas o Valor de uma Celula não teremos erro, pois a condição passará de False para True no final, mas se Deletar um Conjunto de Celulas teremos um erro de Tempo em Execução devido a condição da instrução:
If Range("D6").Value <> "" And Target.Row = 6 And Target.Column = 14 And Target.Value <> "" Then
Então, para contornar, desde que estará digitando sempre nas Celulas "D6 e N6", é só acrescentar uma nova condição para captar se a digitação não está dentro destes parametros e sair da condição devolvendo a Variavel paraTrue. Acrescentei somente as instruções necessárias, não alterando na rotina original do colega Wagner.
Troque por esta e refaça os testes :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim LinhaIN, LinhaFIM As Long
If Not Intersect(Target, Range("D6,N6")) Is Nothing Then
If Range("D6").Value <> "" And Target.Row = 6 And Target.Column = 14 And Target.Value <> "" Then
LinhaIN = Range("D6").Value + 7
LinhaFIM = Range("N6").Value + 7
Range("P" & LinhaFIM).Value = Range("F" & LinhaIN).Value
Range("Q" & LinhaFIM).Value = Range("G" & LinhaIN).Value
Range("R" & LinhaFIM).Value = Range("H" & LinhaIN).Value
Range("S" & LinhaFIM).Value = Range("I" & LinhaIN).Value
Range("T" & LinhaFIM).Value = Range("J" & LinhaIN).Value
End If
End If
Application.EnableEvents = True
End Sub
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 27/11/2013 4:46 pm