Pelo que entendi, se definiu o Range inicial para Digitação C30 e o que irá receber a Soma C11, então temos de trabalhar com os intervalos : Range("C11:C29") e Range("C30:C48"), já que ao se digitar em C49 não queremos alterar em C30 pois é o Range inicial.
Desta forma, e mais uma vez se entendi corretamente, ao se digitar entre C30 e C48 os valores serão lançados e ou somados no intervalo C11 a C29, e ao apagar entre o intervalo C11 a C29 limpar as celulas correspondentes no intervalo C30 a C48, se for isto, aproveitando a rotina do Alexandre e aprimorando para se evitar erros, podemos utiizar da seguinte forma:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo msgErro
Application.EnableEvents = False
'Refere-se ao Range "C11:C29"
If Not Intersect(Target, Range("C11:C29")) Is Nothing Then
'Captura a linha a ser limpa
sLin = ActiveCell.Offset(19, 0).Row
'Se for a linha maior ou igual a 49 sai da rotina
If sLin >= 49 Then Exit Sub
'Limpa a Celula
ActiveCell.Offset(19, 0).ClearContents
'Refere-se ao Range "C30:C48"
ElseIf Not Intersect(Target, Range("C30:C48")) Is Nothing Then
'Captura a linha a ser lançada o valor
sLin = ActiveCell.Offset(-20, 0).Row
'Se for a linha maior ou igual a 30 sai da rotina
If sLin >= 30 Then Exit Sub
ActiveCell.Offset(-20, 0).Value = Target.Value + ActiveCell.Offset(-20, 0).Value
End If
continue:
Application.EnableEvents = True
Exit Sub
msgErro:
MsgBox Err.Description
Resume continue
End Sub
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 21/11/2017 11:44 am