Compartilhar via

Fórmula dentro de fórmula [+Link DDE]

Anônima
2009-11-25T17:55:33+00:00

Galera, eu uso o Profit Chart (programa para cotações real time) e tenho uma questão pra vcs

Primeiro, essa é minha tabela com Link DDE do profit chart: ( qnd háum "|" significa uma nova coluna)

Código | Cotacao | Volume

PETR4 | =nomedoprograma.petr4.cot | =nomedoprograma.petr4.vol

VALE5 | =nomedoprograma.vale5.cot | =nomedoprograma.vale5.vol

Seguinte, vamos ver como funciona a tabela.

Para puxar o dado desse programa eu coloco aquele =nomedoprograma.vale5.cot aonde =nomedoprograma diz de onde vou puxar o dado, petr4 qual ativo, e cot (cotaçao) qual dado.

Seguinte, queria saber se dentro da formula pra puxar o dado do programa eu pudesse incluir outra formula, pra puxar o dado "petr4" e "vale5" da coluna da esquerda, pq se não, tenho que ficar copiando e colando vale5 e petr4 em todas as formulas e tb para toodos os outros ativos em todos os dados (cot, vol e tantos outros)

entenderam? queria saber como fazer uma formula dentro da formula pra puxar o petr4 e vale5 em todas as formulas, puxando de uma célula aonde esteja o c[odigo (ex. coluna da esquerda)

Microsoft 365 e Office 365 | Instalar, resgatar, ativar | Para uso doméstico | Outro

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

Resposta aceita pelo autor da pergunta

Anônima
2009-11-26T01:05:02+00:00

Isso que vc quer não dá para ser feito. O mais próximo que vc consegue disso é uma macro que pegue a série da opção e preencha os campos com as fórmulas. Mas nem isso funciona bem, pois pode ser que o Excel não reconheça que o link DDE colado por macro é um link DDE e vc tenha que editar (F2 + ENTER) todas as células. Não cheguei a uma conclusão do porquê o Excel não reconhece os links DDE colados por macros, mas certamente não reconhece do jeito que vc intenciona. Link DDE não é uma fórmula, mas uma chamada para troca de informações de memória entre dois aplicaitivos (o do vendor e o Excel).

Esta resposta foi útil?

2 pessoas acharam esta resposta útil.
0 comentários Sem comentários

7 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2009-12-14T19:03:19+00:00

    Cara, não sei nenhum material legal para VBA...mas vou tentar te explicar um pouco isso aqui...

    Esta formula que vou colar faz o comando de retornar o valor de uma determinada célula em uma outra junto com a formula do DDE de cotações...para pelo menos vc testar vamos fazer o seguinte...

    1. Na aba exibição clica em macros e em seguida "gravar macro", escolhe o atalho e uma descrição. Logo depois pode ir em macro novamente e pedir para "parar a gravação"...pois vamos fazer a macro pelo VBA que colei logo abaixo.

    2)Depois de parar a gravação, vá novamente em macro, exibir macros e selecione a macro. Clique agora em editar...irá abrir uma outra janela com algumas coisas escritas...apague tudo! e cole o VBA que colei abaixo.

    1. Pode fechar a janela de macros e em seguida fazer o teste para ver se está funcionando...va na selula A1 e digite algum codigo de ação, em seguida use o atalho escolhido para a macro...ou então va em macro e selecione executar! a cotação do papel deverá aparecer na celula B1.

    OBS.: note que onde tem "A1" no VBA é de onde a macro vai puxar o codigo...e onde tem "B1" é onde a macro vai jogar a cotação....

    Essa macro so serve para uma única celula...mas pode ser copiada repetidas vezes uma embaixo da outra alterando apenas os valores "A1" e "B1" que quando a macro for utilizada irá fazer o mesmo processo em todas as celulas da macro....mas para o começo vale o teste apenas na "A1" e "B1"

    VBA da Macro:

     Sub Macro1()

    '

    ' Macro1 Macro

    ' TESTE

    '

    ' Atalho do teclado: Ctrl+Shift+A

    '

        ' seleciona a célula da ação

        Range("A1").Select

        ' recupera o valor da célula da ação

        LValor = ActiveCell.Value

        ' seleciona a célula da fórmula

        Range("B1").Select

        LRetorno = 0

        If (LValor <> "") And (LValor <> " ") Then

          LRetorno = "=profitchart|Cot!" + LValor + ".ult"

        End If

        ' ajusta o valor da fórmula

        ActiveCell.Formula = LRetorno

    End Sub

    Esta resposta foi útil?

    4 pessoas acharam esta resposta útil.
    0 comentários Sem comentários
  2. Anônima
    2009-12-14T18:04:41+00:00

    O que você pode fazer é em uma outra plan para colocar todos os DDEs e na celula q você quer que apareça a cotação coloca uma função "procv" para procurar na plan dos DDEs o valor referente ao papel desejado....por exemplo:

    PLAN COTAÇÕES                               PLAN DDE

        |     A        |      B    |                                         A      |  B     |

    1  |     PETR4 | =procv(a1;DDE!A1:B1;2)             PETR4   |=nomedoprograma.PETR4.ult 

    e assim por diante...

    Espero ter ajudado!

    Esta resposta foi útil?

    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários
  3. Anônima
    2009-11-25T22:19:16+00:00

    Não é isso, vou tentar me explicar melhor. Aí abaixo está uma foto de uma tabela aonde necessito dessa função

    http://img517.imageshack.us/img517/8995/tabelab.jpg

    Ali na coluna mais da esquerda, eu digitei PETRL28 depois fui para baixo e digitei PETRL30. Selecionei as duas e arrastei até para baixo, o Excel reconhece que eu quero que PETRL se mantenha e o número a segur vá variando de dois em dois. Fiz isso até PETRL36, ok?

    Agora vamos ao problema. Está vendo ali a formula pro link DDE? =profitchart|cot!petrl28.ult ok? Bom, se eu escrevo isso nessa e colo a mesma fórmula na de baixo e troco o 28 por 30, seleciono as duas e arrasto pra baixo, o Excel nao entende que eu quero que naquela fórmula o número ali dentro de =profitchart|cot!petrlXX.ult vá variando de dois em dois. Entendeu?

    Daí pensei, vou colocar uma formula, dentro dessa formula que puxe o petrl28, petrl30 e por aí vai daquela coluna da esquerda aonde o Excel reconhece que eu quero que varie de dois em dois. Mas já tentei de todas os jeitos. Pensei que seria fácil do tipo: =profitchart|cot!(=célulaXX).ult mas isso nao funciona.

    Consegi me explicar melhor?

    Valeu!

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2009-11-25T22:07:22+00:00

    Não entendi como vc quer puxar junto, mas se fosse para somar as duas cotações seria algo do tipo:

    =nomedoprograma.petr4.cot  +  nomedoprograma.vale5.cot

    Esta resposta foi útil?

    0 comentários Sem comentários