Ir ao conteúdo
  • Cadastre-se

acumular valores na mesma célula Excel 2010


Posts recomendados

Boa tarde.

Preciso ir somando valores numa única célula, conforme vou digitando em outra.

Por exemplo: em D4 registro um primeiro gasto de 100 reais; em E4 o valor inicial será 100. Depois, digito 200 em D4; em E4 o resultado será 300 (soma de 100 + 200) e assim por diante.

Procurei bastante na internet, mas não achei nada satisfatório, por isso peço ajuda a quem domine melhor que eu o Excel para me passar uma solução.

Abraços a todos.

gilmar splitt

[email protected]

 

Arquivo(s) anexado(s)

 

Link para o comentário
Compartilhar em outros sites

Se quiser experimentar esta solução que utiliza macro, instale o código abaixo no módulo da planilha, assim:
1. copie o código daqui
2. clique com o direito na guia da planilha de interesse e escolha 'Exibir código'
3. cole o código na janela em branco que vai se abrir
4. feito! 'Alt+Q' para retornar para a planilha e testar

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$D$4" Then Exit Sub [E4] = [E4] + [D4]End Sub

 

Link para o comentário
Compartilhar em outros sites

Estou tentando agora. Qualquer dúvida, dou retorno.


Caro Osvaldo, muitíssimo obrigado. Funcionou perfeitamente.

Era exatamente isso de que precisava.

Abraços e tudo de bom.

gs


Caro Osvaldo, abusando da tua generosidade, pergunto o seguinte:

essa planilha que enviei é um teste. Na verdade, preciso incluir a fórmula numa planilha mês a mês e com o cálculo para diversos itens de gastos (supermercado, padaria, vestuário etc.).

Como posso repetir essa macro para várias células da mesma planilha?

gs


Complementando: se fosse uma fórmula, eu arrastaria a célula original. No VBA, tem que indicar todas as células?

Link para o comentário
Compartilhar em outros sites

... essa planilha que enviei é um teste. Na verdade, preciso incluir a fórmula numa planilha mês a mês e com o cálculo para diversos itens de gastos (supermercado, padaria, vestuário etc.).

Como posso repetir essa macro para várias células da mesma planilha?

 

Olá, Gilmar.

Eu não consegui baixar o arquivo que você disponibilizou (aparece mensagem informando que não tenho permissão), e acredito que outras pessoas também não conseguiram pois ao lado do link consta "0 Downloads".

Tente disponibilizar novamente, e se não conseguir upar direto no fórum hospede o arquivo em um site, como o www.sendspace.com, que é gratuito e não requer cadastro.

Informe na própria planilha as células nas quais irá inserir o valor e as células correspondentes em que quer acumular o valor inserido.

Link para o comentário
Compartilhar em outros sites

OK. Devo ter cometido algum erro. O arquivo era uma planilha simples. Minha planilha é bem complexa. Comecei do zero, mal sabendo abrir o Excel e agora, a pau e corda, está ficando perfeita, do jeito que eu quero. Ainda faltam acabamentos, mas o principal é inserir essas células com as totalizações. Vou terminar ela durante a semana, porque meu tempo é bem escasso, e depois te mando a planilha completa. Acho que assim se diminui a possibilidade de erros. 

Por enquanto (tenho disponível até o fim do dia de hoje), estou brincando com os comandos que tu mandaste, na base da tentativa e erro. Minha intenção é ampliar para D5 e E5 o que agora acontece em D4 e E4. Para isso, o que alteraria nos comandos que tu mandaste?

gs 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

 

Minha intenção é ampliar para D5 e E5 o que agora acontece em D4 e E4. Para isso, o que alteraria nos comandos que tu mandaste?

 

 

Experimente o código abaixo no lugar do anterior.

Este código irá totalizar na coluna "E" os valores inseridos na coluna "D" (vale para a coluna inteira), mesma linha.

Ex. inserindo "D8"=10 então o código lançará em "E8"=10,

     depois inserindo "D8"=5 então o código lançará em "E8"=10+5=15

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Then Exit Sub  With Target.Offset(, 1)   .Value = .Value + Target.Value  End WithEnd Sub

 

Link para o comentário
Compartilhar em outros sites

Grato. Funcionou. Mas percebi que a programação tem que ser adaptada à minha planilha definitiva, que tem 12 colunas (os meses do ano) e cada coluna 2 subtotais (linhas 04 a 28 e linhas 31 a 61). Então vou terminar a planilha e disponibilizo ela na íntegra.

Bom final de semana.

gs

Link para o comentário
Compartilhar em outros sites

Estou enviando minha planilha completa anexa, para tentar achar uma programação em VBA que totalize os valores gastos, conforme explicado anteriormente.

Revisando: o que preciso é que o gasto acumulado seja totalizado cada vez que for inserido um valor nas células da coluna "Últ. gasto".

Em JANEIRO, isso corresponde às células E4 até E28 e E31 até E61; em FEVEREIRO, de J4 até J28 e de J31 até J61; em MARÇO, ABRIL, ..... ATÉ DEZEMBRO, idem para as células relativas à coluna "Gasto acum.".

Obrigado a todos.

gs

P.S.: caso seja necessário, a senha para desproteger a planilha é abc.

 

O link para download da planilha é

https://www.sendspace.com/file/t4gvoh

Link para o comentário
Compartilhar em outros sites

Bah... não entendi.

 

Por exemplo:

coloco o valor 10 em "D4" >> o que você quer que o código faça?

depois, coloco o valor 30 em "D5" >> idem

depois, coloco o valor 50 em "D14" >> idem

Esses valores inseridos na coluna "D" poderão ser alterados? Assim, em "D4" está o valor 10, é previsto que poderá ser alterado, por exemplo para 80 ? Se sim, o que você quer que o código faça após a alteração ?

Ainda, os lançamentos na coluna "D" serão efetuados de cima para baixo, ou seja, primeiro "D4", depois "D5", ..., sem deixar células vazias no intervalo "D4:D61", exceto linhas 29 e 30 ? Se não, explique o que deseja que o código faça ?
 

Link para o comentário
Compartilhar em outros sites

Gostei do "bah"...

Bom, a soma pelo VBA tem de ser nas linhas, não nas colunas. Suponhamos que a linha 4 seja meu gasto com gasolina. Ao digitar 10 em D4 (sendo 10 o primeiro gasto do mês) o código me retorna 10 em E4. Registro mais 50, por exemplo, em D4, tenho de ter 60 em E4 (10+50). E assim por diante.

As linhas subsequentes são outros gastos, que tem a mesma lógica de cálculo, mas não tem a ver com a linha anterior. Ou seja, os gastos não se misturam. Se D4 é gasolina, D5 pode ser padaria e D14 pode ser ração para gato.

O programa tem de me dar sempre em E4 a soma daquilo que fui digitando em D4. E4 é programado via VGA, D4 é inserido manualmente.

A soma das colunas eu tenho lá em E29 (autosoma). Nisso não precisa mexer.

Qualquer dúvida, por favor, me retorna.

gs.

Link para o comentário
Compartilhar em outros sites

Experimente

Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Protect "abc", UserInterfaceOnly:=True If Target.Count > 1 Then Exit Sub If (Target.Column + 1) Mod 5 <> 0 Or Target.Column > 59 Then Exit Sub If Not Intersect(Target, Range("4:28", "31:61")) Is Nothing Then  Target.Offset(, 1).Value = Target.Offset(, 1).Value + Target.Value End IfEnd Sub

 

Link para o comentário
Compartilhar em outros sites

Funciona, mas mexeu com as colunas de "saldo". Por algum motivo, está somando em dobro no saldo. Por exemplo, se "SALDO" é 100,00 e eu registro um gasto inicial de 30,00 em "Últ. gasto", o saldo deveria ser 70,00, mas fica 40,00.

 

Bah...! Não mexeu!

 

Me parece que o problema é com as fórmulas que você colocou com a esperança de calcular o "saldo".

Assim, em "F4" você colocou  =SE(D4=0;B4;F4-D4).

Essa fórmula, além de provocar "Referência Circular", pois ela faz referência à própria célula que a contém, ainda como conceito ela me parece equivocada, no meu entendimento deveria ser:

"o saldo disponível é igual ao valor previsto menos o valor já gasto".

Então >> (saldo = previsto - gasto) >> ou seja, em "F4" seria = B4 - E4

Ex.

previsto = 100

gasto = 40

então >> (saldo = 100 - 40 = 60) >> F4 = B4 - E4

Link para o comentário
Compartilhar em outros sites

Acabo de testar tua sugestão e... bingo!

O erro foi que inseri essa coluna de acumular o gasto depois que já tinha criado as outras, porque achei necessário.

Vou fazer um teste completo amanhã e depois, após arrumar a planilha toda. Mas acredito que esteja perfeito.

Qualquer dúvida, entro em contato.

Tem que dar alguma avaliação para o atendimento?

Grato por tudo e bom final de semana.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Boa noite tentei copiar o Código para minha planilha e não deu certo troquei D4 pelas Células correspondentes na minha planilha.não acontece nada ou dá um erro. só copio e colo e não acontece nada. Gostaria de digitar o valor na coluna B e fazer a soma na coluna C. Pois fiz um formulário aí queria ficar preenchendo os dados só no formulário.

tentativa 1.xlsx

Link para o comentário
Compartilhar em outros sites

Na verdade coloquei planilha errada mas não queria mudar a planilha gostaria de saber como posso fazer a o mesmo esquema digitar um valor na coluna b e na coluna c fazer acumulado. Ex B2=11 C2=11 outro a digitar posteriormente B2=12 e em C2=23   pois somaria os valores.

planilha correta.xlsx

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...

Pessoal, bom dia!

 

Acima, encontrei uma solução que eu buscava. Trata-se do código:

 

"Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$D$4" Then Exit Sub [E4] = [E4] + [D4]End Sub".

 

Pois, bem: atualizei o comando com as  células da minha planilha. Porém, quando insiro o comando, seguindo as orientações passadas (inserção de código via guia do excel), retorna erro de compilação: "Era esperado fim de instrução".

 

Alguém poderia me auxiliar?

 

 

 

 

image.png

Link para o comentário
Compartilhar em outros sites

Após ser colado no módulo o código deverá ocupar 4 linhas, exatamente conforme abaixo.

 

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address <> "$D$4" Then Exit Sub
 [E4] = [E4] + [D4]
End Sub

 

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...
Em 10/05/2015 às 16:57, Visitante disse:

Experimente


Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Protect "abc", UserInterfaceOnly:=True If Target.Count > 1 Then Exit Sub If (Target.Column + 1) Mod 5 <> 0 Or Target.Column > 59 Then Exit Sub If Not Intersect(Target, Range("4:28", "31:61")) Is Nothing Then  Target.Offset(, 1).Value = Target.Offset(, 1).Value + Target.Value End IfEnd Sub

 

Olá Amigo, boa tarde! Seria possível me ajudar a adaptar esse codigo em uma planilha que tenho? Estou tentando, mas por falta de conhecimento não estou conseguindo...

Tenho uma planilha onde serão inseridas informações nas celulas: =SUM(G10:J10), o resultado estaria na coluna k10. até ai sem problemas. O problema começa quando as celulas são atualizadas com novos valores(númericos) e o totalizador(K10) deve ir adicionando os valores: Ex. quando eu digito na celula em: G10=10 e H10=2 o resultado em K10 seria 12, ok, mas se eu volto a inserir 10 em G10, K10 deve incrementar, ou seja 22 e não 12. Desculpa se não estou sendo claro! Fico grato pela ajuda!!!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...