Notifications
Clear all

Inserir formula através de VBA e multiplicar por variável

6 Posts
2 Usuários
0 Reactions
4,178 Visualizações
(@finaljustice)
Posts: 91
Estimable Member
Topic starter
 

Boa tarde,

Gostaria de inserir uma formula através de VBA em que referencio uma célula e multiplico por uma variável.
No codigo abaixo tenho uma variável declarada PUBLICA que é a ncmperprd e tem valores decimais.

Sub finalped() 'processo de inserção das equações, cálculos, envio do pedido para faturamento limpeza de planilha de pedido
Sheets("Pedido").Select
'ws = ActiveSheet.Name
blimit = Range("B1048576").End(xlUp).Row
Sheets("Pedido").Range("B41").Select

Do While ActiveCell <> Empty
n = ActiveCell.Row
ActiveCell.Offset(0, 6).Formula = "=$F$" & n & "*" & "$G$" & n 'Desconto em R$ 
ActiveCell.Offset(0, 7).Formula = "=$F$" & n & "-" & "$H$" & n 'Vlr unitário c/ desconto
ActiveCell.Offset(0, 8).Formula = "=$I$" & n & "*" & "$C$" & n 'sub total unit x qnt
ActiveCell.Offset(0, 9).Formula = "=$J$" & n & "*" & ncmperprd 'calc do tributo

ActiveCell.Offset(1, 0).Select
Loop
UserForm1.Hide
UserForm3.Hide

Tudo funcionou com excessão da linha:

ActiveCell.Offset(0, 9).Formula = "=$J$" & n & "*" & ncmperprd 'calc do tributo

Digamso que n= 41 e ncmperprd = 0,33

Gostaria que na Activecell.offset(0,9) recebece isso:
=$J$*0,33

Porém da erro...

Alguém saberia oq estou fazendo de errado?
Obrigado pela atenção.
FJ

 
Postado : 25/06/2013 1:55 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Veja se, desta maneira, funciona:

ActiveCell.Offset(0, 9).FormulaLocal = "=$J$" & n & "*" & ncmperprd

Abraço

 
Postado : 25/06/2013 4:56 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Apesar de fazer um tempinho que não frequento o forum da Info, você pode ter uma explanação primorosa do colega JValk sobre Formula no link abaixo, vale a pena olhar.

Excel: Fórmulas e VBA
Mensagem por JValq » 20 Mai 2012

http://info.abril.com.br/forum/viewtopi ... cro#p55049

Aproveito para agradecer o JValk pelas contribuições tanto aqui como no Forum da Info, participamos de tantos Foruns que acabamos deixando alguns sem acessar, mas não no esquecimento.

[]s

 
Postado : 26/06/2013 9:03 am
(@finaljustice)
Posts: 91
Estimable Member
Topic starter
 

Boa noite,

Veja se, desta maneira, funciona:

ActiveCell.Offset(0, 9).FormulaLocal = "=$J$" & n & "*" & ncmperprd

Abraço

Muito obrigado, vou dar uma lida no link sugerido pelo Mauro Coutinho. para entender as diferenças. Obrigado pelo tempo e ajuda de amobs vc JValq e Mauro Coutinho.

Att,

FJ

 
Postado : 26/06/2013 10:48 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Obrigado pelas palavras, Mauro!
Fico lisonjeado de receber uma citação de um verdadeiro "ninja" do Excel.
Realmente, nem sempre dá tempo de participar com efetividade de todos os fóruns.
Aqui, no Planilhando, há muita "concorrência" para responder, portanto só participo eventualmente.

Abraço

 
Postado : 26/06/2013 7:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Jvalk, eu que tenho de agradecer, apesar de não me achar nenhum Ninja do Excel, boa parte do que sei aprendi muito com pessoas como você que sempre estão dispostos a ajudar, todo dia estou a aprender, recentemente postei uma duvida no forum formulários, sobre uma propriedade que eu ainda não havia utilizado e não sabia nem que existia.

Mas assim é a vida, sempre estamos a aprender e a compartilhar o que aprendemos.

Quanto a participar eventualmente, já é uma grande contribuição a qualquer forum que participe, pois sempre tem respostas certeiras e diretas, agora quanto a "concorrencia", eu não vejo assim, o que percebo, é que são sempre os mesmos a responder devido a falta de mais colaboradores com tempo disponivel, ou seja, é o que acontece comigo, o tempo acaba impedindo de participar mais ativamente em outros foruns.

De qualquer forma, com a licença do Administrador, reitero meus agradecimentos em nome de todos os colegas do Forum por sua participação, seja ela eventual ou não.

[]s

 
Postado : 27/06/2013 7:43 pm