Ir ao conteúdo

Excel Acumulando valores em tempo real - Bolsa de valores


Ir à solução Resolvido por OreiaG,

Posts recomendados

Postado

Olá senhores programadores!!

estou tentando criar uma planilha que vai somando a quantidade de contratos negociados na bolsa de valores em tempo real.

Através da ferramenta "real time data", a planilha recebe os contratos negociados em tempo real direto da plataforma profit

Essa linha azul é onde chega o preço (linha 2, F2), a partir dai a planilha teria que identificar qual foi o banco e ir somando os valores nesse mesmo banco

Por ex: BTG lançou 1000 contratos e depois mais 1000, no caso daria o total 2000 na célula K3.

             BGC Liquidez negociou vários contratos, a medida que for chegando vai somando no seu total BGC Liquidez (K7) e assim por diante. Que nesse caso teria que usar código em VBA.

 De um modo bem grosseiro, a lógica seria o seguinte:

Se E2 = "BTG" entao ACUMULA F2 em K2

Se E2 = "JP Morgan" entao ACUMULA F2 em K3

 

Não sei se consegui explicar direitinho mas agradeço todos que colaborarem

segue uma planilha em anexo

Pasta1.xlsx

Postado

Olá caro Décio, desculpa a demora.

Infelizmente não ta somando de forma cumulativa amigo, eu fiz um pequeno vídeo e vou tentar colocar o link aqui pra ficar mais claro minha solicitação. Mas obrigado pelo rápido retorno

 

 

  • Solução
Postado
21 horas atrás, Fredy Ferreira disse:

Essa linha azul é onde chega o preço (linha 2, F2), a partir dai a planilha teria que identificar qual foi o banco e ir somando os valores nesse mesmo banco

Por ex: BTG lançou 1000 contratos e depois mais 1000, no caso daria o total 2000 na célula K3.

             BGC Liquidez negociou vários contratos, a medida que for chegando vai somando no seu total BGC Liquidez (K7) e assim por diante.

 

Veja se atende.

O código abaixo deve ser colocado no módulo da Planilha1 (acesse o módulo via Alt+F11 e duplo clique em Planilha1).

Private Sub Worksheet_Calculate()
 Dim ac As Range
  Set ac = Range("J3:J" & Cells(Rows.Count, "J").End(3).Row).Find([E2])
  If Not ac Is Nothing Then ac.Offset(, 1).Value = ac.Offset(, 1).Value + [F2]
End Sub

 

Para forçar o recálculo da planilha ao ser alterado E2 ou F2 pelo link, coloque em duas células vazias estas fórmulas. Por exemplo =E2 em W1 e =F2 em Y1.

 

Postado
1 hora atrás, OreiaG disse:

 

Veja se atende.

O código abaixo deve ser colocado no módulo da Planilha1 (acesse o módulo via Alt+F11 e duplo clique em Planilha1).

Private Sub Worksheet_Calculate()
 Dim ac As Range
  Set ac = Range("J3:J" & Cells(Rows.Count, "J").End(3).Row).Find([E2])
  If Not ac Is Nothing Then ac.Offset(, 1).Value = ac.Offset(, 1).Value + [F2]
End Sub

 

Para forçar o recálculo da planilha ao ser alterado E2 ou F2 pelo link, coloque em duas células vazias estas fórmulas. Por exemplo =E2 em W1 e =F2 em Y1.

 

 

Poxa amigo, não sei como agradecer, está funcionando lindamente!!!!

 

só quero deixar um adendo e não sei se é a forma correta, mas para replicar para outros bancos coloquei da seguinte maneira:

 

Private Sub Worksheet_Calculate()
 Dim ac As Range
  Set ac = Range("J3:J" & Cells(Rows.Count, "J").End(3).Row).Find([E2])
  If Not ac Is Nothing Then ac.Offset(, 1).Value = ac.Offset(, 1).Value + [F2]
End Sub


Private Sub Worksheet_Calculate2()
 Dim ac As Range
  Set ac = Range("J4:J" & Cells(Rows.Count, "J").End(3).Row).Find([E2])
  If Not ac Is Nothing Then ac.Offset(, 1).Value = ac.Offset(, 1).Value + [F2]
End Sub

 

---------------

Esta funcionando mas não sei se é a forma correta

 

Mas de qualquer maneira, estou muito feliz com sua ajuda

Muito obrigado!!! 

  • Curtir 1
Postado
1 hora atrás, Fredy Ferreira disse:

só quero deixar um adendo e não sei se é a forma correta, mas para replicar para outros bancos coloquei da seguinte maneira:

Esta funcionando mas não sei se é a forma correta

 

 

Se está funcionando então é o resultado do código que eu postei. Pode apagar o código que você inventou (Worksheet_Calculate2()) que vai funcionar igual.

 

O código que postei busca na coluna "J" o nome do Banco que for colocado pelo link em E2, e se esse nome não for encontrado na coluna "J" o código nada faz. Então, para replicar em outros Bancos, elabore na coluna "J" a lista com todos os nomes dos Bancos do seu interesse que poderão aparecer em E2. Basta isso.

 

No entanto, se você quiser captar o nome do Banco em outra célula além de E2, então você precisa passar mais detalhes e exemplos.

  • Amei 1
Postado

@Fredy Ferreira , Bom Dia.

 

A formula só está somando o que tem na planilha e não é acumulativa, para fazer o que voce quer é só por VBA, como o colega OreiaG fez.

 

Se voce colocar na planilha todas as movimentações numa aba por exemplo, ai a formula vai conseguir ajudar voce

 

Decio

 

  • Amei 1
Postado
10 horas atrás, OreiaG disse:

 

Se está funcionando então é o resultado do código que eu postei. Pode apagar o código que você inventou (Worksheet_Calculate2()) que vai funcionar igual.

 

O código que postei busca na coluna "J" o nome do Banco que for colocado pelo link em E2, e se esse nome não for encontrado na coluna "J" o código nada faz. Então, para replicar em outros Bancos, elabore na coluna "J" a lista com todos os nomes dos Bancos do seu interesse que poderão aparecer em E2. Basta isso.

 

No entanto, se você quiser captar o nome do Banco em outra célula além de E2, então você precisa passar mais detalhes e exemplos.

Ahhhhh entendi meu caro! 

assim q chegar em casa vou deixar o original q você postou anteriormente. Mas ta tudo perfeito!

Muito obrigado 

  • Curtir 1

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!