Notifications
Clear all

Inserir fórmula e variavél na mesma célula

10 Posts
1 Usuários
0 Reactions
2,205 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Estou tendo problemas para adicionar uma formula simples em VBA.
A formula é simples, apenas o valor de uma célula multiplicada por uma contante, constante que no código é uma variável.

Veja o exemplo:
.Cells(i, 3).FormulaR1C1 = "= RC[-2]*" & lbox_Preview.List(0, 2) ' neste caso deu certo, na celula fica algo assim: =B2*cte

.Cells(i, 5).FormulaR1C1 = "= RC[-13]*" & lbox_Previt2.List(0, 4) ' neste caso deu errado, e a única diferença é que o listbox é outro

Já perdi 2 dias tentando achar uma solução e nada, mudei o nome do listbox, esclui ele e criei um novo, copiando do listbox que deu certo,
para que as propriedades de ambos sejam as mesmo, mudando apenas o nome, mas nao deu certo. Já tentei adcionar o valor a uma variavel Single
e coloquei esta depois do '&', mas nada de dar certo. Se alguém souber se esta é a sintaxe correta me avise. Eu se souberem o qu gera este ero aleatório.
A mensagem de erro é: erro 1024

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

 
Postado : 23/11/2011 11:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Wesley, o ideal seria anexar um exemplo reduzido de seu modelo, evitando assim passarmos informações incorretas quanto a questão "apenas o valor de uma célula multiplicada por uma contante, constante que no código é uma variável"

[]s

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

 
Postado : 23/11/2011 11:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

http://www.4shared.com/get/LznBH51j/Con ... etico.html

Vai um link para a plan. Se vc executar o form principal, com ctrl + f ou no menu, vc verá que ao lançar os dados selecionados
pra a planilha de relatório um erro é gerado. No código há uma função que envia os dados do primeiro listbox para a plan e outra que
envia os do segundo, dentre outras. A primeira função utiliza-se daquela primeira linha de código que postei, sem problemas, a segundo se utiliza da segunda
mas gera um erro. Não consigo solucionar o problema, já que a sintzxe dá certo em uma parte em outra não. Qualquer ajuda será bem vinda.
Tks

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

 
Postado : 23/11/2011 12:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Wesley, só vou poder ver quando chegar em casa a noite, aqui no serviço estes tipos de servidores são bloqueados.

[]s

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

 
Postado : 23/11/2011 12:45 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Contribuindo....

Acontece porque o valor da lbox_Previt2 possui valores decimais ... por exemplo, 1,91. Aí começa o problema com a tal virgula separando a parte fracionária... Para o VBA, a parte fracionária é sempre separada por ponto ...

Substitua a virgula por ponto, uma das maneiras é:

.Cells(i, 5).FormulaR1C1 = "=RC[-13]*" & Replace(lbox_Previt2.List(0, 4), ",", ".")

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

 
Postado : 23/11/2011 2:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Perfeito Alexandre, não sei nem como agradecer.
Passei dois dias no trabalho pesquisa e tentando resolver, e nem me passou pela cabeça essa ipótese.
Obrigado tbem Mauro, pela boa vontade.

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

 
Postado : 23/11/2011 5:35 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Wesley e Alexandre,

Apesar da solução do Alexandre ter resolvido a questão, posto uma outra forma sem precisar utilizar o replace, bastando somente usar a Função de Conversão "Str", ficando a referida linha da seguinte forma :

.Cells(i, 5).FormulaR1C1 = "=RC[-13]*" & Str(lbox_Previt2.List(0, 4))

[]s

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

 
Postado : 23/11/2011 7:01 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu Mauro, sua solução tbm foi útil.
---
Eu tbm sou de São José dos Pinhais, pensei que não tivesse experts em VBA por aqui rs

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

 
Postado : 24/11/2011 8:58 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu Mauro, sua solução tbm foi útil.
---
Eu tbm sou de São José dos Pinhais, pensei que não tivesse experts em VBA por aqui rs

Valeu Wesley, ainda bem que foi útil, e se encontrar algum expert em VBA aqui na terrinha me avisa, que estou precisando aprender mais um pouco, ainda estou engatinhando.

[]s

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

 
Postado : 24/11/2011 9:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu Wesley, ainda bem que foi útil, e se encontrar algum expert em VBA aqui na terrinha me avisa, que estou precisando aprender mais um pouco, ainda estou engatinhando.

[]s

Putzz...
Mauro se tu ta engatinhando não quero nem pensar oque me agarda... :o :shock:

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

 
Postado : 24/11/2011 3:49 pm