PC Review


Reply
Thread Tools Rate Thread

Delete Rows as per Text, Font Color, Font Type, Time Format

 
 
prkhan56
Guest
Posts: n/a
 
      23rd Oct 2010
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
 
Reply With Quote
 
 
 
 
James Ravenswood
Guest
Posts: n/a
 
      23rd Oct 2010
On Oct 23, 11:53*am, prkhan56 <prkha...@gmail.com> 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
 
Reply With Quote
 
 
 
 
Don Guillett Excel MVP
Guest
Posts: n/a
 
      23rd Oct 2010
On Oct 23, 10:53*am, prkhan56 <prkha...@gmail.com> 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


One way to do this is to start at the bottom and go up with your
conditions.

for i= cells(rows.count,1).end(xlup).row to 2 step -1
if cells(i,1)=cond1 or cells(i,1)=cond2 or cells(i,1)=cond3 then
rows(i).delete
next i

or
for i= cells(rows.count,1).end(xlup).row to 2 step -1
if cells(i,1)<>cond then rows(i).delete
next i
modify to suit



 
Reply With Quote
 
prkhan56
Guest
Posts: n/a
 
      23rd Oct 2010
On Oct 23, 10:49*pm, James Ravenswood <james.ravensw...@gmail.com>
wrote:
> On Oct 23, 11:53*am, prkhan56 <prkha...@gmail.com> 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- Hide quoted text -
>
> - Show quoted text -


Hi James,
Your macro does only the last part i.e delete Rows with Arial Font and
Text Black

It does not delete rows with the text ABCD or Rows with hh:mm format
even if I re-run the macro

Also I wish to run the code on all the sheets in the workbook please

Thanks for your time

 
Reply With Quote
 
James Ravenswood
Guest
Posts: n/a
 
      24th Oct 2010
On Oct 23, 5:13*pm, prkhan56 <prkha...@gmail.com> wrote:
> On Oct 23, 10:49*pm, James Ravenswood <james.ravensw...@gmail.com>
> wrote:
>
>
>
>
>
> > On Oct 23, 11:53*am, prkhan56 <prkha...@gmail.com> 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- Hide quoted text -

>
> > - Show quoted text -

>
> Hi James,
> Your macro does only the last part i.e delete Rows with Arial Font and
> Text Black
>
> It does not delete rows with the text ABCD or Rows with hh:mm format
> even if I re-run the macro
>
> Also I wish to run the code on all the sheets in the workbook please
>
> Thanks for your time- Hide quoted text -
>
> - Show quoted text -


It may be a line wrap problem in my post. Make sure the boo= is all
one line, not two.
 
Reply With Quote
 
prkhan56
Guest
Posts: n/a
 
      24th Oct 2010
On Oct 24, 3:47*am, James Ravenswood <james.ravensw...@gmail.com>
wrote:
> On Oct 23, 5:13*pm, prkhan56 <prkha...@gmail.com> wrote:
>
>
>
>
>
> > On Oct 23, 10:49*pm, James Ravenswood <james.ravensw...@gmail.com>
> > wrote:

>
> > > On Oct 23, 11:53*am, prkhan56 <prkha...@gmail.com> 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- Hide quoted text -

>
> > > - Show quoted text -

>
> > Hi James,
> > Your macro does only the last part i.e delete Rows with Arial Font and
> > Text Black

>
> > It does not delete rows with the text ABCD or Rows with hh:mm format
> > even if I re-run the macro

>
> > Also I wish to run the code on all the sheets in the workbook please

>
> > Thanks for your time- Hide quoted text -

>
> > - Show quoted text -

>
> It may be a line wrap problem in my post. *Make sure the boo= is all
> one line, not two.- Hide quoted text -
>
> - Show quoted text -


Hi James,
I kept the boo= in one line... it still does not work.
It seem while executing from down upwards it does the first part and
misses the other two conditions.
Any clue?
Thanks for your time once again
Rashid
 
Reply With Quote
 
rumkus@hotmail.com
Guest
Posts: n/a
 
      24th Oct 2010

James' code worked for me OK.
I only had to make sure "hh:mm" is time format not custom.
Rgds
 
Reply With Quote
 
prkhan56
Guest
Posts: n/a
 
      24th Oct 2010
On Oct 25, 12:54*am, "rum...@hotmail.com" <rum...@hotmail.com> wrote:
> James' code worked for me OK.
> I only had to make sure "hh:mm" is time format not custom.
> Rgds


Hi
The data on which I was trying the code is copy pasted from the
Internet.
I tried James' code on a new sheet and it worked for two conditions.
Rows with hh:mm format were not deleted.
I dont know how to make sure the "hh:mm" is time format.
I have not seen any option in the Time Format.
Only option available is in Custom.

Any clues!

Thanks
PS: Also would you guide me how to convert the data copy pasted from
the Internet to a format which will be recognised by the Macro.
 
Reply With Quote
 
rumkus@hotmail.com
Guest
Posts: n/a
 
      24th Oct 2010
> I dont know how to make sure the "hh:mm" is time format.
> I have not seen any option in the Time Format.


Format, Cells, Number then you will have both "Time" and "Custom"
This maybe won't sound to be very practical method though.
Rather than "hh:mm" value is there any other identifying values on the
other columns on the same rows to be deleted ?
Rgds

 
Reply With Quote
 
prkhan56
Guest
Posts: n/a
 
      25th Oct 2010
On Oct 25, 1:58*am, "rum...@hotmail.com" <rum...@hotmail.com> wrote:
> > I dont know how to make sure the "hh:mm" is time format.
> > I have not seen any option in the Time Format.

>
> Format, Cells, Number then you will have both "Time" and "Custom"
> This maybe won't sound to be very practical method though.
> Rather than "hh:mm" value is there any other identifying values on the
> other columns on the same rows to be deleted ?
> Rgds


Yes you are right..when I open a new Sheet and in put 12:30 the format
shown is in Custom, hh:mm.
The data is in only in Col B....no other values are there.
How did the code worked for you?

Thanks and Regards
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FONT / ROW ACCESS 2007 Unable to change font size or colour of individual text or heigth of individual rows without all text & rows changing moto Microsoft Access 1 12th Nov 2008 08:23 PM
How can I restrict application usage per user per time of day? =?Utf-8?B?R3V5?= Windows XP General 4 21st Mar 2007 01:49 AM
Inserting time via DTpicker but per 15 min i/o per min =?Utf-8?B?Uk1G?= Microsoft Excel Programming 1 23rd Mar 2006 12:47 AM
can i wrap rows to form multiple rows per row to fit on 1 sheet? =?Utf-8?B?RGF2ZQ==?= Microsoft Excel Misc 1 12th Jul 2005 01:36 PM
In Access how do I manage Hours per employee per Project per Date. =?Utf-8?B?UFM=?= Microsoft Access Database Table Design 1 6th Feb 2005 05:04 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 05:54 AM.