Notifications
Clear all

Duvida com Macro como simplificar?

5 Posts
3 Usuários
0 Reactions
1,063 Visualizações
(@jason)
Posts: 0
New Member
Topic starter
 

Bom dia

Pessoal

Teria como simplificar a macro abaixo:

Sub Dezembro()
'
' Dezembro Macro
'

'
Range("N5:N7").FormulaR1C1 = "=SUMIF('2015'!C[-10],Gráfico!C[-13],'2015'!C[3])"
Range("O5:O7").FormulaR1C1 = "=SUMIF('2015'!C[-11],Gráfico!C[-13],'2015'!C[2])"
Range("P5:P7").FormulaR1C1 = "=SUMIF('2015'!C[-12],Gráfico!C[-13],'2015'!C[1])"
Range("Q5:Q7").FormulaR1C1 = "=SUMIF('2015'!C[-13],Gráfico!C[-13],'2015'!C)"
Range("R5:R7").FormulaR1C1 = "=SUMIF('2015'!C[-14],Gráfico!C[-13],'2015'!C[-1])"
Range("S5:S7").FormulaR1C1 = "=SUMIF('2015'!C[-15],Gráfico!C[-13],'2015'!C[-2])"
Range("T5:T7").FormulaR1C1 = "=SUMIF('2015'!C[-16],Gráfico!C[-13],'2015'!C[-3])"
Range("U5:U7").FormulaR1C1 = "=SUMIF('2015'!C[-17],Gráfico!C[-13],'2015'!C[-4])"
Range("V5:V7").FormulaR1C1 = "=SUMIF('2015'!C[-18],Gráfico!C[-13],'2015'!C[-5])"
Range("W5:W7").FormulaR1C1 = "=SUMIF('2015'!C[-19],Gráfico!C[-13],'2015'!C[-6])"
Range("X5:X7").FormulaR1C1 = "=SUMIF('2015'!C[-20],Gráfico!C[-13],'2015'!C[-7])"
Range("Y5:Y7").FormulaR1C1 = "=SUMIF('2015'!C[-21],Gráfico!C[-13],'2015'!C[-8])"

End Sub

Na realidade é uma formula =SOMASE('2015'!D:D;Gráfico!C:C;'2015'!Q:Q).

Desde já agradeço a ajuda.

Atenciosamente,
Jason

 
Postado : 19/05/2015 4:24 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Estou no celular, mas tente:

Sub Dezembro()
'
' Dezembro Macro
'
Dim i as Long, j as Long, l as Long

For i = 10 to 21

j = i + 3
l = i - 7

Range(Cells(5, j), Cells(7, j).FormulaR1C1 = "=SUMIF('2015'!C[-"&i&"],Gráfico!C[-13],'2015'!C["&l&"])"

Next i

End Sub

 
Postado : 19/05/2015 5:49 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Ops, acho que na verdade seria isso:

Sub Dezembro()
'
' Dezembro Macro
'
Dim i as Long, j as Long, l as Long

For i = 10 to 21

j = (i + 3) * -1
l = 13 - i

Range(Cells(5, j), Cells(7, j).FormulaR1C1 = "=SUMIF('2015'!C[-"&i&"],Gráfico!C[-13],'2015'!C["&l&"])"

Next i

End Sub

 
Postado : 19/05/2015 6:08 am
(@jason)
Posts: 0
New Member
Topic starter
 

Não funcionou, mas alguém.

Desde já agradeço.

 
Postado : 19/05/2015 12:56 pm
(@edcronos)
Posts: 1006
Noble Member
 

então o ideal é vc postar um exemplo de sua planilha explicando oq quer fazer
vc ´pode tentar com formula local tbm

ci=coluna inicial em numero 1=a 2=b ...
cf=coluna final em numero 1=a 2=b ...
li=linha inicial
lf=linha final
for j=ci to cf
Range(Cells(li, j), Cells(lf, j).Formulalocal="SOMASE('2015'!D:D;Gráfico!C:C;'2015'!Q:Q)"
next

 
Postado : 20/05/2015 12:42 pm