Notifications
Clear all

Colar conteúdo que tenha "="

13 Posts
5 Usuários
0 Reactions
2,281 Visualizações
(@xluis)
Posts: 6
Active Member
Topic starter
 

Moçada, procurei e não achei a solução do meu problema. Por isso recorro aqui:

Tenho uma Macro que coloca, em uma célula, o conteúdo de uma variável que começa com o carácter "igual" (=). Para isso estou tentando usar ".value" ( Cells(10, 24).Value = XYZ) mas infelizmente não funciona. Me é apresentado o erro "Run-time error '1004': Application-defined or object-defined error.

Obs.: XYZ é o nome da variável.

Acredito que, se ao invés de passar para a célula o conteúdo da variável, eu colasse (o bom e velho "ctrl+v") na célula tal conteúdo, via macro, funcionaria como preciso, pois diretamente na Planilha, se eu der um "ctrl + c" no conteúdo da variável e posteriormente um "crtl+v" na célula, funciona normalmente.

E aí vem a dúvida, como passar o valor da variável para a célula, não usando o ".Value", mas sim colando?

Obrigado pela ajuda,

 
Postado : 12/04/2017 2:17 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

xLuis,

Boa tarde!

Anexe um exemplo aqui.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 12/04/2017 2:35 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Juro que nao entendi

Vc quer copiar uma formula.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/04/2017 2:45 pm
(@xluis)
Posts: 6
Active Member
Topic starter
 

Moçada, agradeço a atenção. Vou tentar colocar mais informações:

Essa é a varíavel:
v_servidor_grade = "=RTDtryd.rtdserver"

Preciso passar o valor dessa variável ( "=RTDtryd.rtdserver" ) para uma célula especifica:
Cells(v_vazio, 24).Value = v_servidor_grade

E esse é o problema, por ter um "=" (igual) no começo dessa variável, não consigo rodar a Macro, apresentando o erro acima (Run-time error '1004': Application-defined or object-defined error).

Creio que, se eu conseguir colar o conteúdo dessa variável ( "=RTDtryd.rtdserver" ) diretamente na célula (sem usar ".Value"), dará certo.

 
Postado : 12/04/2017 3:07 pm
(@mprudencio)
Posts: 2749
Famed Member
 

De onde vem essa variavel?

"=RTDtryd.rtdserver"

Talvez se tirar o = resolva

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/04/2017 3:51 pm
(@xluis)
Posts: 6
Active Member
Topic starter
 

De onde vem essa variavel?

"=RTDtryd.rtdserver"

Talvez se tirar o = resolva

Valeu a contribuição, mas esse é o problema: Eu preciso que esse "=" (igual) exista nessa variável. Uso-a para acessar um RTD (RealTimeData) que colhe dados da Bolsa de Valores.

Diretamente na planilha, se eu colocar a variável, com o seu respectivo "=" (igual), funciona normalmente. Por isso acho que se conseguir em "colar", via Macro, ao invés de usar ".Value", deva dar certo. O problema é como fazê-lo.

Thanks,

 
Postado : 12/04/2017 3:55 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Posta o arquivo com o codigo COMPLETO.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/04/2017 4:09 pm
(@xluis)
Posts: 6
Active Member
Topic starter
 

Posta o arquivo com o codigo COMPLETO.

Segue o código que estou usando:

---------------------------
Sub Atualiza_grade()

Application.ScreenUpdating = False

If Cells(11, 22).Value = "On" Then
Call Limpar_grade

Cells(11, 22).Value = "Off"

Else
Cells(11, 22).Value = "On"
v_linha = Cells(11, 33).Value 'Captura a até qual linha deve ser montada

v_servidor_grade = "=RTD(""tryd.rtdserver"""

v_vazio = 17
v_fim = v_linha

'-----Limpa eventuais células preenchidas
Range("X17:AL" & v_fim).Select
Selection.ClearContents
ActiveCell.Select

Do While v_vazio <= v_fim
If Cells(v_vazio, 21).Value <> "" Then
v_ativo = """" + Cells(v_vazio, 21) + """"

'-----Atualiza ativos

Cells(v_vazio, 24).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Hora"")"
Cells(v_vazio, 26).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Ult"")"
Cells(v_vazio, 28).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""VarPer"")" + "/100"
Cells(v_vazio, 30).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Max"")"
Cells(v_vazio, 32).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Min"")"
Cells(v_vazio, 34).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Abert"")"
Cells(v_vazio, 36).Value = v_servidor_grade + ";;""COT"";" + v_ativo + ";""Fech"")"

End If

v_vazio = v_vazio + 1

Loop
End If

Range("A1").Select

Application.ScreenUpdating = True

End Sub
---------------------------

Valeu pela ajuda,

 
Postado : 12/04/2017 4:22 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aparentemente o que está "paasando" para a celula e uma formula, assim experimente utilizar a função formula:
Cells(v_vazio, 24).Formula= v_servidor_grade + ";;""COT"";" + v_ativo + ";""Hora"")"
Não sei como a variavel sera "encarada', bem como o "+" já que sera encarado como formula, assim pode experimentar tambem :
Cells(v_vazio, 24).formula= "=RTD(""tryd.rtdserver"""& ";;""COT"";" & v_ativo & ";""Hora"")"

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/04/2017 5:07 pm
(@xluis)
Posts: 6
Active Member
Topic starter
 

Aparentemente o que está "paasando" para a celula e uma formula, assim experimente utilizar a função formula:
Cells(v_vazio, 24).Formula= v_servidor_grade + ";;""COT"";" + v_ativo + ";""Hora"")"
Não sei como a variavel sera "encarada', bem como o "+" já que sera encarado como formula, assim pode experimentar tambem :
Cells(v_vazio, 24).formula= "=RTD(""tryd.rtdserver"""& ";;""COT"";" & v_ativo & ";""Hora"")"

Valeu Reinaldo, testei agora (usando "Formula" e posteriormente colocando a instrução "direta", sem usar a varíavel). E continua, infelizmente, se repete, com o mesmo código de erro.

Não sei se posso dizer que é uma fórmula, e sim uma instrução, com o objetivo de receber dados da Bolsa de Valores.

 
Postado : 12/04/2017 5:23 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Posta a planilha.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/04/2017 6:02 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

xLuis, boa noite

Não cheguei a analisar, só superficialmente, mas vi que vc quer passar uma fórmula usando o ponto-e-vírgula como separador de argumentos, que é como usamos lá no Excel. Então vc deve usar a propriedade .FormulaLocal para passá-la, e não a .Formula, ok? Então vc tem as duas opções. Para passar com a .Formula, use vírgula.

 
Postado : 12/04/2017 6:17 pm
(@xluis)
Posts: 6
Active Member
Topic starter
 

xLuis, boa noite

Não cheguei a analisar, só superficialmente, mas vi que vc quer passar uma fórmula usando o ponto-e-vírgula como separador de argumentos, que é como usamos lá no Excel. Então vc deve usar a propriedade .FormulaLocal para passá-la, e não a .Formula, ok? Então vc tem as duas opções. Para passar com a .Formula, use vírgula.

PQP! Eita que o povo aqui é fera demais! Grande EdsonBR, muitíssimo obrigado pela ajuda. Bastou usar a sua sugestão (".FormulaLocal") no lugar de ".Value" e deu tudo certo. Obrigado.

Quero agradecer também a todos que se interessaram em ajudar. Muito obrigado.

Suce$$o pra todos nós, cada dia mais.

 
Postado : 12/04/2017 7:37 pm