Notifications
Clear all

Inserir formula através de código VBA

12 Posts
4 Usuários
0 Reactions
2,074 Visualizações
(@varzya)
Posts: 35
Eminent Member
Topic starter
 

Na "Plan1", coluna "D", existe uma formula da celula D3 até D15000.

Gostaria de saber se é possível inserir através de código no VBA a mesma formula, porém sendo inserida a cada lancamento, em sua respectiva linha? E não da forma que está atualmente, onde foi definido até a celula D15000.

Pergunto, porque tenho em outra situacao, uma planilha que possui muitas celulas com formulas, e desta forma a cada lancamento, a planilha demora muito para processar.

Fiz este exemplo bem simples para um melhor entendimento. Espero que tenha conseguido passar o que necessito. Desde ja agradeco a todos. Obrigado.

 
Postado : 13/10/2015 8:09 pm
(@brunoicq)
Posts: 8
Active Member
 

O código VBA precisa necessariamente escrever a formula? Pergunto isso porque acho mais fácil fazer o próprio código VBA fazer os cálculos e só preencher a tabela do que fazer o código VBA escrever a formula.

 
Postado : 13/10/2015 9:03 pm
(@renatbr)
Posts: 25
Eminent Member
 

Dei uma olhadinha rapida, tambem comecei agora a aprender sobre VBA, mas tenta acrescentar esse codigo aos seus butões:

Private Sub CommandButton1_Click()

Call credito

Sheets("Plan1").Range("D1048576").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[-2]="""",RC[-1]=""""),"""",R[-1]C+RC[-2]-RC[-1])"

End Sub
Private Sub CommandButton2_Click()

Call debito

Sheets("Plan1").Range("D1048576").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[-2]="""",RC[-1]=""""),"""",R[-1]C+RC[-2]-RC[-1])"

End Sub
 
Postado : 14/10/2015 5:43 am
(@varzya)
Posts: 35
Eminent Member
Topic starter
 

Bruno, primeiramente obrigado pela atenção.

Necessariamente o VBA nao precisa escrever a formula, foi o melhor que pensei. Mas a opção de o próprio código VBA fazer os calculos seria o ideal.

Neste meu exemplo em anexo, como ficaria? você tem como anexar um modelo?

Abraços.

Renan,

Obrigado também.

Como ficaria seu exemplo usando "FormulaLocal"? e não no padrão que você mostrou.

Obrigado.

 
Postado : 14/10/2015 8:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Já experimentou formatar sua planilha como tabela. Nessa formatação a cada inclusão o excel acrescenta as formulas, conforme a linha anterior;não havendo necessidade de preencher até x linha

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

 
Postado : 14/10/2015 11:46 am
(@varzya)
Posts: 35
Eminent Member
Topic starter
 

Reinaldo,

Obrigado. Mas sua opção não funcionou muito na planilha de exemplo em anexo. Se você poder baixar a planilha e ajustar para mim, agradeço.

Ainda no aguardo de um modelo de solução.

 
Postado : 14/10/2015 2:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Tente assim.

SubAleVBA_17706()
    Dim Lastrow As Long
    Lastrow = Range("A" & Rows.Count).End(xlUp).Row
    Range("D3:D" & Lastrow).Formula = "=IF(AND(B3="""",C3=""""),"""",D2+B3-C3)"
    Range("D3:D" & Lastrow).Value = Range("D3:D" & Lastrow).Value
End Sub

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

 
Postado : 14/10/2015 2:38 pm
(@varzya)
Posts: 35
Eminent Member
Topic starter
 

Alexandre,

Você poderia encaixar sua dica na planilha de exemplo? Consigo entender melhor desta forma. Obrigado.

 
Postado : 14/10/2015 2:48 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Selecione o código e cole dentro de um módulo!!!

Att

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

 
Postado : 15/10/2015 7:46 am
(@varzya)
Posts: 35
Eminent Member
Topic starter
 

Alexandre,

Infelizmente, não funcionou sua dica.

Ainda no aguardo. Obrigado.

 
Postado : 15/10/2015 1:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Onde tu querer que seja posto?
no botão de nome ""Botão? que tem a sub rotina Sub chamaform1() ?

Att

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

 
Postado : 15/10/2015 2:27 pm
(@brunoicq)
Posts: 8
Active Member
 

Veja se este arquivo funciona.

Coloquei a seguinte código:

Cells(linha, 4).Value = Cells(linha - 1, 4).Value + Cells(linha, 2).Value - Cells(linha, 3).Value

isso tanto na operação Débito como Crédito.

Se funcionar, não esqueça de clicar na mãozinha e de marcar o tópico como [RESOLVIDO].

 
Postado : 15/10/2015 6:44 pm