Este fórum foi descontinuado. LEIA AQUI e participe da Comunidade BABOO :)

A área de Remoção de Malwares está aberta na Comunidade BABOO. LEIA AQUI

Ir para conteúdo
edupeto

RESPONDIDO Problemas na união de células para formar fórmula

Mensagem Recomendada

Espero conseguir ajuda deste fórum, pois tenho tentado em vão resolver um problema que acontece com uma tentativa de automatizar uma planilha de excel que estou construindo.

Vamos ao problema:

- Digamos que na célula B1 eu tenha escrito a palavra so
- na C1 a palavra ma
- D1 o valor 10
- E1 o valor 20.

Se eu utlizar o comando CONCATENAR OU O & ENTRE B1, C1, D1, E1 (Exemplo: Concatenar(b1;c1;"(";d1;"+";e1;")")
não consigo o resultado da expressão básica: =soma(d1+e1)...ou seja 30.

Mesmo que no comando concatenar eu acrescente como primeiro parâmetro A1 (com o valor de =) para fechar a fórmula...o excel não calcula.

Obviamente não é este tipo de fórmula que quero utilizar, mas automatizar uma planilha...sem que eu precise ficar colocando uma fórmula com parâmetros específicos.

O problema é que a função Concatenar e o operador "&" retornam os dados em string.....o que faz com que o Excel não os interprete como "fórmula".

Espero que tenha conseguido expressar a minha ideia.

Agradeço a atenção e ajuda. E desde já preço desculpas se tal questionamento for trivial para alguns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia..Edu..

Testa aê.. na coluna F1 coloca esta formula:

=B1&C1&"="& SOMA(D1:E1)

Boa sorte!!


O truque da filosofia é começar por algo tão simples que ninguém ache digno de nota e terminar por algo tão complexo que ninguém entenda.

16659376348_0bf967577c_s.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
MarceloKai:

 

Obrigado pelo retorno. Tentarei explicitar melhor o problema.

 

A planilha que busco automatizar é uma que possui um link DDE com um aplicativo gráfico para a bolsa de valores. Minha intenção é automatizar este link DDE, de maneira que eu não precise ficar tendo que construir ele manualmente para cada ativo que for incluindo na planilha.

EX:

Vamos supor que na Coluna A3 (Cujo título seja "PAPEL") eu insira o seguinte dado: PETR4 (ação da Petrobrás). Ok....mais adiante nesta mesma linha, eu teria outra coluna com nome "Valor Atual"...que faria o link com o aplicativo que utilizo. O comando para fazer este link é o seguinte: =profitchart|cot!petr4.ult

Detalhe: profitchart é o programa que uso; cot! aciona o link DDE; petr4 é o dado constante na coluna A3; .ult pega no programa o valor da última cotação do ativo (que neste exemplo é o que interessa).

 

Normalmente...o que eu faço....pego a fórmula que faz o link e lanço linha por linha. Se modificar ou acrescentar algum ativo...preciso modificar ou acrescentar a fórmula nas linhas. Agora imagine se tiver muitas linhas....seriam muitas fórmulas na planilha...uma em cada linha.

 

Minha intenção qual é: no momento em que eu digito o dado na coluna A (A3, A4, A5...) que automaticamente o conteúdo desta coluna seja acrescentado na fórmula que faz o link DDE (=profitchart|cot!nomedoativo.ult) automaticamente. Porém não consigo automatizar isto. Já fiz uso do comando Concatenar...e também do operador &...a fóruma fica montadinha corretamente, porém não funciona. O que acontece é que o dado fica em forma de string...e o Excel não faz a operação necessária para isto.

 

Espero ter clareado mais....

 

Abraço,

 

Eduardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se quiser testar esta solução por meio de macro, instale o código abaixo no módulo da planilha de interesse, 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

funcionamento:
após inserir o nome do ativo na coluna "A" o código lançará automaticamente a fórmula desejada na coluna "G", mesma linha

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
  Cells(Target.Row, "G").Formula = "=profitchart|cot!" & Target.Value & ".ult"
End Sub

 


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

OSVALDOMP

 

Cara, simplesmente fantástica tua solução.

 

Funcionou perfeitamente. Claro que pelo que vi...posso trocar a coluna que tu lançou a fórmula por  outra que tenha a ver com minha planilha.

 

Vlw mesmo!!!

 

Não querendo abusar...mas já abusando....

posso usar esta rotina com outra fórmula, por exemplo, nesta mesma planilha...ou preciso renomeá-la (claro que mudando seus parâmetros)?

 

Abraço,

 

Eduardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou perfeitamente. Claro que pelo que vi...posso trocar a coluna que tu lançou a fórmula por  outra que tenha a ver com minha planilha.

Sim, pode. Você não informou em qual coluna deseja a fórmula. Coloquei a fórmula na coluna "G" .

 

 

posso usar esta rotina com outra fórmula, por exemplo, nesta mesma planilha...ou preciso renomeá-la (claro que mudando seus parâmetros)?

O código é executado  após alguma inserção/alteração na coluna "A". Você pode adicionar nele outras instruções.


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 09/07/2013 at 5:52 PM, osvaldomp disse:

se quiser testar esta solução por meio de macro, instale o código abaixo no módulo da planilha de interesse, 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 p
funcionamento:
após inserir o nome do ativo na coluna "A" o código lançará automaticamente a fórmula desejada na coluna "G", mesma linha

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
  Cells(Target.Row, "G").Formula = "=profitchart|cot!" & Target.Value & ".ult"
End Sub

 

Boa tarde pessoal. Vi que esse tópico é bem antigo mas reflete a uma dúvida recente minha de não conhecedor de Excel.

Eu coloquei a função acima e deu muito certo mesmo, perfeito, mas como não entendo de VBA não consegui adaptar para minha realidade. No exemplo acima, qualquer valor colocado em qualquer linha, sendo coluna A, ele vai criar a fórmula na coluna G. Mas eu tenho a seguinte necessidade para entender:

Quero que quando altere a célula B2 ele crie a fórmula na B3 e que o mesmo seja feito com outro valor na C2 que coloque a fórmula na C3

Basicamente é a mesma coisa do exemplo, que nota alteração da coluna A e coloca na G, mas eu quero que isso ocorra somente na alteração das células B2 para colocar a formula na B3 e também alteração da C2 para colocar na C3.

 

Como funciona isso nessa questão de target? Alguém pode auxiliar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Experimente:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, [B2:C2]) Is Nothing Then Exit Sub
 Target.Offset(1) = "=SUM(A2:A20)"
End Sub

Substitua no código =SUM(A2:A20) pela sua fórmula.

Se você tiver dificuldade informe quais as fórmulas a serem colocadas em B3 e em C3.


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×
×
  • Criar Novo...