Notifications
Clear all

Carregar fórmula em uma varíavel

8 Posts
2 Usuários
0 Reactions
1,638 Visualizações
(@wluis)
Posts: 8
Active Member
Topic starter
 

Prezados(as),

Estou precisando colocar a seguinte fórmula (exatamente como abaixo) dentro de uma variável XYZ:

=SUBSTITUIR(RTD("sbbsystems.yfquote.rtd.yahoo.server";"";"INDU";"LAST");".";",").

A dificuldade é devido as ""(aspas) que existem nessa fórmula, o que me impede de carregá-la em uma variável. E Porque eu preciso disso?

Quando for "desligar" determinada região da minha planilha, basta fazer com que as células sejam iguais a "-". Até aqui tudo bem. O problema é para ligar essa região, que em tese seria simples, já que bastaria fazer tais células = variável (com a fórmula acima). Aí entra o problema citado acima.

Toda ajuda é bem vinda. Obrigado.

 
Postado : 29/12/2011 6:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


WLuís,

veja se com este exemplo, consegue resolver a questão das aspas:

A fórmula armazenada como String é =SE(A1="";"";A1).

Sub Macro1()

Dim xyz As String

xyz = "=IF(" & "A1" & "="""",""""," & "A1" & ")"

Cells(2, 2).Formula = xyz

End Sub

 
Postado : 29/12/2011 7:17 am
(@wluis)
Posts: 8
Active Member
Topic starter
 

Obrigado pela ajuda Edson,

Realmente a concatenação resolveria (como resolveu o problema). Tinha tentando antes, mas deu tanta dor de cabeça que tinha desistido. Com a sua dica, resolvi fazer novamente. Com isso, a fórmula =SUBSTITUIR(RTD("sbbsystems.yfquote.rtd.yahoo.server";"";"INDU";"LAST");".";",") ficou assim (essa deu trabalho):

v_last_DJI = "=SUBSTITUIR(RTD(" & """" & "sbbsystems.yfquote.rtd.yahoo.server" & """" & "" & ";" & """" & """" & "" & ";" & """" & "INDU" & ";" _
& """" & "LAST" & """" & ");" & """" & "." & """" & ";" & """" & "," & """" & ")"

Só que surgiu um outro problema. Ao fazer a célula = a varíavel ( Worksheets("Recepção & Base de Dados").Cells(16, 16).Formula = v_last_DJI ), me é apresentado o "Erro em tempo de execução '1004': Erro de definição de aplicativo ou de definição de objetivo. Vale frisar que as varíaveis foram devidamente setadas (Dim v_last_DJI, v_close_DJI.

Procurando a respeito, não encontrei nada que justificasse. Tem alguma idéia, por favor, do que pode ser?

Thanks,

 
Postado : 29/12/2011 11:18 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Você alterou as funções para o termo equivalente em inglês?

SUBSTITUIR: REPLACE

RTD: Acho que é RTD mesmo

 
Postado : 29/12/2011 1:57 pm
(@wluis)
Posts: 8
Active Member
Topic starter
 

Edson,

Alterei agora, de Substituir para Replace, e o problema continua. Vou avaliar com calma nesse final de semana. Deve ser alguma coisa simples que está passando despercebido. Assim que resolver trago a solução para cá, já que pode ser útil à outras pessoas.

Obrigado pela ajuda.

 
Postado : 30/12/2011 9:25 am
(@wluis)
Posts: 8
Active Member
Topic starter
 

Edson e demais (quem puder ajudar é muito bem vindo),

Voltando após alguns dias de "férias", consegui concatenar a fórmula acima, mas surgiu um outro problema que não achei solução (após muito procurar na Internet): Não consigo fazer com que a fórmula funcione, já que ela é colada como texto na célula (e obrigatoriamente a célula deve estar no formato texto também).

Já usei Cells(19, 44).Formula ou Cells(19, 44).Value e o problema continua. Caso modifique a célula para o formato de texto, eu consigo colar a "fórmula" mas o que vejo é a fórmula em si e não o que ela deveria calcular ou executar.

Alguma sugestão?

Obrigado pela ajuda,

 
Postado : 10/01/2012 2:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Você já tentou "Cells(19, 44).FormulaLocal"?

Abraço

 
Postado : 10/01/2012 5:36 pm
(@wluis)
Posts: 8
Active Member
Topic starter
 

JValq,

Problema resolvido. A solução que você apresentou caiu como uma luva.

Obrigado pela ajuda.

 
Postado : 11/01/2012 8:09 am