Notifications
Clear all

Macro para inserir fórmula na célula

6 Posts
2 Usuários
0 Reactions
2,735 Visualizações
(@guilhermepedro)
Posts: 10
Active Member
Topic starter
 

Seguinte galera,

Preciso de uma macro que crie uma fórmula em uma célula. Até tentei gravar uma macro mas não consigo entender o que a gravação de macro gera..
não entendo esse negócio de FormulaR1C1.. Alguém se habilita a explicar?? uaehauehuae :lol:

Na verdade, será um somatório de multiplicação de células:
Por exemplo: = (A1*B1)+(A2*B2)+(A3*B3)+...assim por diante..

Só que o usuário irá fornecer um certo número de valores, ou seja, por exemplo, 4 linhas preenchidas..
Dai que a fórmula deverá multiplicar e somar somente o que tiver nas 4 linhas..

Como fazer?

 
Postado : 29/09/2012 2:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

R1C1 indica Linha(Row) "R" e Coluna (Colum) C. Os numeros indicam a posição, então R1C1 corresponde à celula na linha 1 (R1) e coluna 1 (C1) ou seja A1.Tambem vai depender do local onde a formula será "depositada"
Mas na macro vc pode utlizar ao inves de FormulaR1C1 --> Fomula ou FormulaLocal; a diferença básica entre formula e formulalocal e que se houver alguma referencia a uma função (po exemplo "SE") em Formula deve estar em ingles "IF", e em formulalocal "SE".No seu exemplo não há distinção ente uma e outra, visto terem somente operações aritmeticas.
Exemplo:Supondo que ira incluir o seu exemplo em C13; então
FormulaR1C1 = "=(R[-12]C[-2]*R[-12]C[-1])+(R[-11]C[-2]*R[-11]C[-1])+(R[-10]C[-2]*R[-10]C[-1]+......)"
onde R[-12]C[-2]corresponde: da posição colocada(C13) são 12 linhas acima e 2 colunas à esquerda (tudo isso para dizer "A1".
Se utilizar formula (ou nessa situação tb FormulaLocal)será:
Formula = "=((A1*B1)+(A2*B2)+(A3*B3))" (mais simples não?)

 
Postado : 29/09/2012 5:02 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Leia também:
http://msdn.microsoft.com/pt-br/library ... ar1c1.aspx

Att

 
Postado : 29/09/2012 5:14 pm
(@guilhermepedro)
Posts: 10
Active Member
Topic starter
 

Valeu mesmo Reinaldo.. fica bem mais simples mesmo.

Agora, ressalto que ainda sou novato no VBA, como ficaria uma estrutura "For to" para o somatório dessas multiplicações?

Testei assim:
Sub inserirsomatorio()

Dim F
Dim i
For i = 1 To 4
F = "=Ai+Bi"
Range("D1").Select
ActiveCell.Formula = "" & F
F = Range("D1")
Next i

End Sub

Não está rodando. Com certeza estou fazendo alguma burrada de iniciante.. hehhehehe

Alguma ideia? Ressalto que preciso que necessito da fórmula dentro célula pois terá células vazias e vou rodar o solver nelas.

 
Postado : 29/09/2012 7:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi, mas veja se é isso:

Sub inserirsomatorio()

Dim F As String, Y As String
Dim i As Long
F = "="
For i = 1 To 4

Y = "A" & i & "+B" & i
F = F & "+" & Y
Next i
Range("D1").Select
ActiveCell.Formula = F

End Sub
 
Postado : 30/09/2012 6:29 am
(@guilhermepedro)
Posts: 10
Active Member
Topic starter
 

Valeu Reinaldo.. agora você foi demais.. exatamente o que precisava.
Valeu mesmo!

 
Postado : 30/09/2012 8:55 am