No VBA é possível a...
 
Notifications
Clear all

No VBA é possível arrastar a formula para baixo

5 Posts
2 Usuários
0 Reactions
2,313 Visualizações
(@xlarruda)
Posts: 0
New Member
Topic starter
 

Pessoal bom dia. Me surgiu uma dúvida aqui.

Estou estudando um pouco o método Application.WorksheetFunction e queria saber.

É possível imitar a método do excel (de arrastar a fórmula para as células abaixo) no VBA? pois quando ele faz isso recalcula o resultado de acordo com a célula de referência atual.

Já, eu nao consegui fazer isso no vba, pois as células de referencia ficam fixas na minha função e sempre traz o mesmo resultado

desde já agradeço.

 
Postado : 03/11/2017 8:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Uma forma seria

Sub soma()
Dim LR As Long
With Sheets("Plan1")
    LR = .Range("A" & Rows.Count).End(xlUp).Row
    .Range("C2").Formula = "=sum(A2:B2)" 'Application.WorksheetFunction.Sum([A2+B2])
    .Range("C2:C" & LR).FillDown
    .Range("C2:C" & LR).Value = .Range("C2:C" & LR).Value 'Remove as formulas
End With

End Sub

Att

 
Postado : 03/11/2017 8:35 am
(@xlarruda)
Posts: 0
New Member
Topic starter
 

alexandrevba, Bom dia!

Cara muito obrigado! era exatamente isso o que pretendia. E o que é melhor: Consegui entender perfeitamente o seu método para colocar em prática nas minhas planilhas. Acredito que, dessa forma minhas planilhas vão ficar até mais rápidas, pois trabalho com relatórios que possuem em média 50.000 linhas de informação onde eu ja deixo as fórmulas inseridas para receber as "variáveis".

Vlw você é fera...

tenho só mais uma dúvida: o método ".formula" é o mesmo que "Application.WorksheetFunction"?

Abrç!

 
Postado : 03/11/2017 9:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Com certeza suas planilhas ficarão mais rápidas!!

Quanto a sua dúvida.
Na biblioteca Excel, temos a classe Range e o membro Formula, neste caso o VBA executa uma fórmula como se o usuário o tivesse feito (usando o recurso formula do excel).
No caso do worksheetfunction(Biblioteca Excel e Classe WorksheetFunction), temos um recurso elegante com as funções da mesma forma, o que muda é forma da linguagem que neste caso seria objetos.

Fonte:
https://msdn.microsoft.com/pt-br/vba/ex ... erty-excel

Att

 
Postado : 03/11/2017 9:31 am
(@xlarruda)
Posts: 0
New Member
Topic starter
 

Cara mais uma vez você foi bem claro na explicação.

Essa não me esqueço mais.. Resolvido!

Obrigado.

Abrç!

 
Postado : 03/11/2017 9:38 am