Altere o trecho da macro conforme abaixo
Range("l4").Select
primeiro = Range("l4").Offset(0, -4).Address(RowAbsolute:=False)
segundo = [h4].End(xlDown).Address
Range("l4").Formula = "=" & primeiro & "/" & segundo
um = [M4].Offset(0, -1).Address(RowAbsolute:=False)
dois = [H1048576].End(xlUp).Address
Range("M4").Formula = "=" & um & "*" & dois
[n4] = "=RC[-6]+RC[-1]"
Codigo completo
Sub Rateio_teste()
Range("k1").Select
Selection.Offset(2, 0).Select
Selection.EntireRow.Insert
Selection.Offset(2, 0).Select
[k1048576].End(xlUp).Offset(1, 0).Select
Selection.EntireRow.Insert
Selection.Offset(0, -3).Select
Dim Inicio As Long
Dim Coluna As String
Dim Intervalo As String
'Obtem a coluna da célula ativa
Coluna = Left(ActiveCell.Address(1, 0), InStr(1, ActiveCell.Address(1, 0), "$") - 1)
'Verifica o inicio do intervalo a ser somado, a partir da célula ativa
Inicio = ActiveCell.Offset(-1, 0).End(xlUp).Row
'Monta o intervalo ... por exemplo, H1:H5
Intervalo = Coluna & Inicio & ":" & Coluna & ActiveCell.Row - 1
'Escreve a fórmula na célula ativa
ActiveCell.Formula = "=SuM(" & Intervalo & ")"
Selection.Offset(1, 0).Select
Selection.EntireRow.Insert
[H1048576].End(xlUp).Offset(1, 0).Select
Coluna = Left(ActiveCell.Address(1, 0), InStr(1, ActiveCell.Address(1, 0), "$") - 1)
'Verifica o inicio do intervalo a ser somado, a partir da célula ativa
Inicio = ActiveCell.Offset(-1, 0).End(xlUp).Row
'Monta o intervalo ... por exemplo, H1:H5
Intervalo = Coluna & Inicio & ":" & Coluna & ActiveCell.Row - 1
'Escreve a fórmula na célula ativa
ActiveCell.Formula = "=SuM(" & Intervalo & ")"
Columns("L:L").Select
Selection.ClearContents
Selection.Style = "Percent"
Range("l4").Select
primeiro = Range("l4").Offset(0, -4).Address(RowAbsolute:=False)
segundo = [h4].End(xlDown).Address
Range("l4").Formula = "=" & primeiro & "/" & segundo
um = [M4].Offset(0, -1).Address(RowAbsolute:=False)
dois = [H1048576].End(xlUp).Address
Range("M4").Formula = "=" & um & "*" & dois
[n4] = "=RC[-6]+RC[-1]"
Range("L4:N4").Select
Selection.Copy
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Range("A1:C1").Select
Range(Selection, Selection.End(xlUp)).Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(1, 0).Range("A1").Select
Columns("o:o").AutoFit
End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 26/01/2016 1:47 pm