View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
James Ravenswood James Ravenswood is offline
external usenet poster
 
Posts: 143
Default Delete Rows as per Text, Font Color, Font Type, Time Format

On Oct 23, 11:53*am, prkhan56 wrote:
Hello All,
I am using Excel 2007 and have a workbook with many sheets

There are many Pictures on each sheet and Data is in Column B on all
the sheets.

The data is repeated in the same format every 6th row For eg.
B1 * * *Value is in ##.## formatted as hh:mm
B2 * * *Normal Text <<<< I want to retrain this row and delete all other
Rows.
B3 * * *Name eg ABCD (same for every set of Data)
B4 * * *Text in Arial Font and Black Color (varies in length)
B5 * * *Text in Arial Font and Black Color (varies in length)
B6 * * *Text in Arial Font and Black Color (varies in length)
B7 * * *same as above
B8 * * *same as above
B9 * * *same as above
B10 * * same as above
B11 * * same as above
B12 * * same as above
...... *.... ...... * .....
B13-B18 as above
B19-24 *as above

I use the following macro to delete all the pics from all the
worksheets which works ok.
Sub deleteAllPics()
Dim wks As Worksheet
Dim myPict As Object
For Each wks In ThisWorkbook.Worksheets
* * * * For Each myPict In wks.Pictures
* * * * * * * * myPict.Delete
* * * * Next myPict
* * * * Next wks
Set wks = Nothing
End Sub

I want a macro (I guess 3 macros??, a single macro??) *to Find and
Delete Rows for the following conditons on all the Sheets
a) Delete Rows where the Cell Format is ##.## formatted hh:mm - to
take care of B1 in the above example
b) Delete Rows where the Cell Value is = ABCD - to take care of B3 in
the above example
c) Delete Rows where the Cell Format is Arial Font and Font Color is
Black - to take care of B4,B5,B6 in the above example

After the macro is run I need to have only Rows with Normal Text (as
shown in the example above)

Any help would be greatly appreciated
TIA
Rashid Khan


Hi Rashid:

Here is something you can use as a model:

Sub RowKiller()
Dim boo As Boolean, EndOfB As Long, rKill As Range
Dim i As Long
Set rKill = Nothing
EndOfB = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To EndOfB
With Cells(i, "B")
boo = (.NumberFormat = "hh:mm") Or (.Value = "ABCD") Or
(.Font.Name = "Arial" And .Font.ColorIndex = 1)
If boo Then
If rKill Is Nothing Then
Set rKill = Cells(i, "B")
Else
Set rKill = Union(rKill, Cells(i, "B"))
End If
End If
End With
Next
If rKill Is Nothing Then
Else
rKill.EntireRow.Delete
End If
End Sub