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.
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.
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
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.
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
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.
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
Alexandre,
Você poderia encaixar sua dica na planilha de exemplo? Consigo entender melhor desta forma. Obrigado.
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
Alexandre,
Infelizmente, não funcionou sua dica.
Ainda no aguardo. Obrigado.
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
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].