Testando seu modelo, funcionou perfeitamente com a rotina que o Reinaldo adaptou, a única alteração que fiz foi trocar :
P1048576 por P65536 devido ao meu excel ser 2003.
Uma obs, provavelmente devido ao ctrl+c e ctrl+v na rotina estas linhas fazem a mesma ação, só alterando o +1 que é necessário para pegar a última celula vazia, sem ela estará subscrevendo o último registro anterior com o primeiro.
FinalRow = WSSaida.Cells(Application.Rows.Count, 16).End(xlUp).Row
Lin = Range("P65536").End(xlUp).Row + 1
Troque :
FinalRow = WSSaida.Cells(Application.Rows.Count, 16).End(xlUp).Row por :
Lin = WSSaida.Cells(Application.Rows.Count, 16).End(xlUp).Row + 1
e apague a "Lin = Range("P65536").End(xlUp).Row + 1"
Ficando assim :
Sub Expandir()
Dim WSSaida As Worksheet, wSS As Worksheet
'Dim FinalRow As Long
Dim Lin As Long
Dim d As Date, i As Integer, n As Integer, v As Currency
Set wSS = Worksheets("Resumo")
Set WSSaida = Worksheets("BD_SAIDAS")
d = wSS.Cells(11, 3) ' data 1ª parcela
i = 1 ' nº 1ª parcela
n = wSS.Cells(14, 5) 'total de parcelas
v = wSS.Cells(13, 3) / n 'valor parcela
WSSaida.Activate
Lin = WSSaida.Cells(Application.Rows.Count, 16).End(xlUp).Row + 1
Do While i <= n
Cells(Lin, 16) = d
Cells(Lin, 20) = i
Cells(Lin, 21) = "de"
Cells(Lin, 22) = n
Cells(Lin, 18) = v
d = DateAdd("m", 1, d) 'd + 30
i = i + 1
Lin = Lin + 1
Loop
End Sub
Mas não entendi o que quer dizer com :
Quando fixamos essa variável em uma célula ele faz todo o processo e para depois quando esta desta forma ele fica continuo
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/10/2014 6:33 am