Try:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim lRow As Long, lCol As Long, i As Long, j As Long
With ActiveWorkbook.ActiveSheet.UsedRange
lRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
lCol = .Cells.SpecialCells(xlCellTypeLastCell).Column
For i = lRow - 1 To 2 Step -1
If .Range("B" & i + 1).Value = 0 Then
ElseIf .Range("B" & i).Value = 0 Then
Else
j = .Range("B" & i + 1).Value - .Range("B" & i).Value - 1
If j > 0 Then
.Range(.Cells(i + 1, 1), .Cells(i + j, lCol)).Insert Shift:=xlShiftDown
End If
End If
Next
j = Format(.Range("B2").Value, "dd")
If j > 1 Then
.Range(.Cells(2, 1), .Cells(j, lCol)).Insert Shift:=xlShiftDown
End If
End With
Application.ScreenUpdating = True
End Sub
Cross-posted at:
http://www.excelforum.com/excel-prog...lue-cells.html
For cross-posting etiquette, please read:
http://www.excelguru.ca/content.php?184