View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
jacqui[_2_] jacqui[_2_] is offline
external usenet poster
 
Posts: 30
Default For Each statement

Can anyone kindly recommend the quickest way to insert
rows based on specific criteria. For example I have VBA
that inserts a row when the loop finds that a cell in the
range is formatted to Bold but is not Italic. I do this
with the following
Sub format_InsertRows()

Dim lngLastRow As Long
Dim i As Long

With Worksheets("data")
lngLastRow = .Cells(Rows.Count, 6).End(xlUp).Row

For i = lngLastRow To 2 Step -1
If .Cells(i, 6).Font.Bold And _
Not .Cells(i, 6).Font.Italic Then
.Cells(i + 1, 6).EntireRow.Insert
End If
Next

End With
End Sub


Now I need to be more specific and say if the contents of
cells i, 7 = string value "Other" then insert 3 rows above
it and if cells i, 7 = "Belfast" then insert 4 rows above
it. I also need to say if cells i, 7 = "Disc" then delete
3 rows beneath it. Given that the datafile contains about
3000 rows in i, I wondered if it might be quicker to do an
Edit/Find or a Do Until thing. Can anyone suggest the
quickest way and provide the syntax to do the above. My
methods may seem a bit crazy but I need to make the
datafile the same shape as a template to copy/paste the
data into. NB: Making my source data the same shape as
the template is not an option, Excel needs to do the work
unfortunately.
Many thanks
Jacqui