Notifications
Clear all

Automatizar fórmulas da planilha

12 Posts
3 Usuários
0 Reactions
1,380 Visualizações
(@louro)
Posts: 7
Active Member
Topic starter
 

Estou precisando automatizar umas fórmulas constantes na minha planilha mas estou muito recente no mundo do VBA se alguém estiver condições de me ajudar eu seria muito grato.
As fórmulas são as seguintes:

Nas células na coluna "AD" : = SE(AC12="-";"-";SE(S12>T12;(1+AC12)*((1-T12)/(1-S12))-1;AC12))

Nas células na coluna "T" : = G13*N13

Nas células na coluna "N" : = 1-M13

Nas células na coluna "L" : = SE(M862="Mão dupla";SE(OU(I862="-";J862="-");"Guia";"Destaque");"Guia")

Desde já agradeço pela atenção de todos.

 
Postado : 30/04/2014 11:55 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Louro,

Boa Tarde!

Supondo que você deseja inserir as fórmulas na Plan1, da linha 2 até a linha 10, você deve utilizar um código mais ou menos como esse:

Dim i As Integer
For i = 2 to 10
     Sheets ("Plan1").Range ("AD" & i).FormulaLocal = "= SE(AC" & i & "="""-""";"""-""";SE(S" & i & ">T" & i & ";(1+AC" & i & ")*((1-T" & i & ")/(1-S" & i & "))-1;AC" & i & "))"
     Sheets ("Plan1").Range ("T" & i).FormulaLocal = "= G" & i & "*N" & i "
     Sheets ("Plan1").Range ("N" & i).FormulaLocal = "= 1-M" & i"
     Sheets ("Plan1").Range ("L" & i).FormulaLocal = "= SE(M" & i & "="""Mão dupla""";SE(OU(I" & i & "="""-""";J" & i & "="""-""");"""Guia""";"""Destaque""");"""Guia""")"
Next

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 30/04/2014 12:15 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Wagner, agradeço demais sua pronta resposta.
Quando eu copio sua fórmula para meu módulo as três últimas linhas que fazem referência a Sheets ("Plan1") ficam vermelhas como se estivesse faltando alguma informação.
Consegue me ajudar com isso?
Mais uma vez obrigado pela sua atenção

 
Postado : 30/04/2014 2:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Sinta se a vontade para postar seu arquivo modelo compactado!

Att

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

 
Postado : 30/04/2014 2:22 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Muito Obrigado pela atenção também Alexandre.
Estou enviando o arquivo compacto onde REFERÊNCIA são os valores que utilizados para compor determinadas FÓRMULAS.

Obrigadão mesmo cara.

 
Postado : 30/04/2014 2:46 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Louro,

Não entendi... onde está o código que lhe enviei? onde deve ser colocado? O que você deseja fazer?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 30/04/2014 2:56 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Olá Wagner, eu compactei a planilha para constar apenas as células com fórmulas e suas referências e coloquei em anexo.
Eu queria tirar estas fórmulas e com a macro esses valores seriam calculados conforme alteração nas referências.

 
Postado : 30/04/2014 3:06 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Viram meu arquivo ? Conseguem me ajudar?

 
Postado : 01/05/2014 1:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Louro

Compactar, não quer dizer retirar coisas da planilha, e sim compactar o arquivo com o programa compactador, como ZIP ou RAR, que diminui o tamanho arquivo para anexar no fórum.
Leia as regras do fórum.
viewtopic.php?f=7&t=203

Patropi - Moderador

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

 
Postado : 01/05/2014 2:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!!

Eu não entendi muito bem, em seu primeiro post ao indicar as colunas e ver seu arquivo modelo, não parece fazer sentido.

Eu tenho várias postagens mostrando como inserir uma formula via VBA, use a pesquisa do fórum ou me faça entender exatamente o que pretende.

Att

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

 
Postado : 01/05/2014 2:21 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Patropi, infelizmente meu arquivo possui 10 Mb e não consegui compactar para enviar aqui pois continuava muito grande, a única saída que encontrei foi reduzí-lo realmente.

Alexandrevba, no meu primeiro post eu indiquei as colunas com base no arquivo original, sendo que infelizmente não consegui compacta-lo para enviar por aqui, quando eu reduzi as colunas não são mais as mesmas realmente, peço desculpas por não informar sobre isso.

O que eu queria realmente era transformar todas as fórmulas constantes das colunas fórmulas em function, com o evento de mudar ao serem inseridos valores nas colunas "referência". Conseguem me ajudar? muito obrigado pela atenção.

 
Postado : 01/05/2014 2:56 pm
(@louro)
Posts: 7
Active Member
Topic starter
 

Pessoal, boa tarde.
Quebrei a cabeça aqui e montei os códigos abaixo, acontece que quando adaptei para minha planilha original me dá um erro de "TIPOS INCOMPATÍVEIS" para o código """"""" Cells(i, "f").Value = (1 - Cells(i, "e")) """""", conseguem me explicar se eu preciso fazer algum ajuste? Muito Obrigado

Sub PrimeiraParte()
Dim i As Integer

'Da linha 2 até a linha 4

For i = 2 To 4

'Coluna "F"

Cells(i, "f").Value = (1 - Cells(i, "e"))

If Cells(i, "a").Value = "-" Then
Cells(i, "g").Value = Cells(i, "a")
Else
Cells(i, "g").Value = Cells(i, "a") * Cells(i, "d")
End If

'coluna H
Cells(i, "h").Value = Cells(i, "b") * Cells(i, "f")
Next i
End Sub

Sub SegundaParte()
For i = 2 To 4

'coluna J

If Cells(i, "i").Value = "-" Or Cells(i, "i").Value = "NÃO" Then
Cells(i, "J").Value = "-"
Else
If Cells(i, "a") = 0 Then
Cells(i, "j").Value = Cells(i, "a")
End If
If Cells(i, "g") >= Cells(i, "h") Then
Cells(i, "j").Value = "-"
Else
Cells(i, "j").Value = 1 - (Cells(i, "g")) / Cells(i, "h")
End If
End If
Next i
End Sub

Sub TerceiraParte()

For i = 9 To 10
If Cells(i, "d").Value = "Mão Dupla" Then
If InStr(Cells(i, "a"), "-") > 0 And InStr(Cells(i, "b"), "-") > 0 Then
Cells(i, "e").Value = "Destaque"
Else
Cells(i, "e").Value = "Guia"
End If
Else
Cells(i, "e").Value = "Guia"
End If

Next i
End Sub
Sub QuartaParte()

'Coluna L

For i = 2 To 10

If Cells(i, "K").Value = "-" Then
Cells(i, "L").Value = "-"

Else
If Cells(i, "G") > Cells(i, "h") Then
Cells(i, "L").Value = ((1 + Cells(i, "K")) * (1 - Cells(i, "H")) / (1 - Cells(i, "G")) - 1)

Else
Cells(i, "L").Value = Cells(i, "K").Value

End If
End If

Next i

End Sub

 
Postado : 02/05/2014 2:01 pm