Inclua em seu exemplo, qual(is) colunas envolvidas e o resultado esperado (faça manualmente)
Reinaldo, no final ficou assim:
Funcionamento:
Uma WorkSheet chamda "Orçamento" que continha meu os custos unitarios de um determinado serviço com diversos itens (fora de ordem). Continha também uma WorkSheet chamada "Relatório", que continua alguns cáculos ainda em fórmulas, mas que assim que for fechada o tratamento da planilha, seram todos feitos via VBA.
Necessidade:
Na pasta Relatório, eu precisava que ao digitar um código na coluna "A", fosse me dado a soma do produto dos itens contidos na pasta Orçamento, o problema se dava, pq havia a necessidade de um "Somase" ou "SomarProduto" apartir do código.
Solução:
Morel desenvolveu uma planilha que fazia essa comparação do codigo digitado na coluna A com os codigos contido no orçamento, e assim se fez possivel o PROC + SOMARPRODUTO, ficando o codigo da seguinte forma:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim i, UltimaLinha As Long
Dim Soma As Double
On Error GoTo Saida
If Target.Column = 1 And Target.Value <> "" Then
UltimaLinha = Sheets("Orçamento").Cells(Cells.Rows.Count, 1).End(xlUp).Row
For i = 2 To UltimaLinha
If Sheets("Orçamento").Range("A" & i).Value = Sheets("Relatório").Cells(Target.Row, Target.Column).Value Then
Soma = Soma + CDbl(Sheets("Orçamento").Range("D" & i).Value) * CDbl(Sheets("Orçamento").Range("E" & i).Value)
Sheets("Relatório").Cells(Target.Row, Target.Column + 3).Value = Soma
End If
Next
ElseIf Target.Value = "" Then
Application.EnableEvents = True
Exit Sub
End If
Application.EnableEvents = True
Saida:
Application.EnableEvents = True
End Sub
Postado : 15/04/2013 12:57 pm