Hi Dalman,
There are a few ways to do this. Here's an example:
Code:
Sub foo()
Dim lRow As Long, lLastRow As Long
Dim rngToInsert As Range
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For lRow = 2 To lLastRow
With Cells(lRow, 1)
If .Value2 <> .Offset(1).Value2 Then
If rngToInsert Is Nothing Then
Set rngToInsert = .Offset(1)
Else
Set rngToInsert = Application.Union(rngToInsert, .Offset(1, lRow Mod 2))
End If
End If
End With
Next lRow
If Not rngToInsert Is Nothing Then
Application.ScreenUpdating = False
rngToInsert.EntireRow.Insert shift:=xlShiftDown
Application.ScreenUpdating = True
End If
End Sub
You can adapt it as necessary: for example, you can add more criteria to determine whether or not a row needs to be inserted.
If you want any of the code or logic explained then please ask.
Hope that helps...