Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / New Users / November 2006

Tip: Looking for answers? Try searching our database.

Filtering

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Adel Handal - 09 Nov 2006 07:52 GMT
Hi to all,

I have worksheet nammed HCP2006. colomn EK has numbers in some of it's
cells. The code below is to select only the rows that has numbers (not
blank) in colomn EK starting from row 6.

These filtered rows has to be copied to another worksheet in the same folder
that has the name WV_KP_06 which containes 12 sheets for 12 months and
according to the month (here it is June).

When cells in colomn EK is empty (all blank) an error occures the code does
not continue.

I want to add a Message box telling that there is nothing to be filtered and
to return every thing as it was before starting the code.

Note: this code is run when pressing a button on the HCP_2006 worksheet.

Thanks in advance,

Khalil Handal

Here is the code:

Sub KP6()

' Month of June06 KP

   Dim RngToFilter66 As Range

   Dim RngToCopy66 As Range

   Dim Destwks66 As Worksheet

   Dim DestCell66 As Range

   Dim LastRow66 As Long

   With ActiveSheet

       .Unprotect Password:="1230"

       'turn off any existing filter

       .AutoFilterMode = False

       Set RngToFilter66 = .Range("EK6", .Cells(.Rows.Count,
"EK").End(xlUp))

       RngToFilter66.AutoFilter Field:=1, Criteria1:="<>"

       If RngToFilter66.Cells.SpecialCells(xlCellTypeVisible).Count = 1
Then

           'no visible rows in filter.

           Set RngToCopy66 = Nothing

       Else

           With RngToFilter66

               Set RngToCopy66 = .Resize(.Rows.Count - 1, 1).Offset(1, 0) _

                   .Cells.SpecialCells(xlCellTypeVisible)

           End With

       End If

       .AutoFilterMode = False

       .Protect Password:="1230"

   End With

   Set Destwks66 = Nothing

   On Error Resume Next

   Set Destwks66 = Workbooks("wv_KP_06.xls").Worksheets("Jun")

   On Error GoTo 0

   If Destwks66 Is Nothing Then

       Set Destwks66 = Workbooks.Open(ThisWorkbook.Path &
"\WV_KP_06.xls").Worksheets("Jun")

       End If

   With Destwks66

       ' delete any previous lines after row 7

       Worksheets("Jun").Select

       Rows("7:50").Select

       Selection.ClearContents

       Range("A7").Select

       ' previous line added by me

       LastRow66 = .Cells(.Rows.Count, "B").End(xlUp).Row + 1

       Set DestCell66 = .Cells(LastRow66, "A")

   End With

   RngToCopy66.EntireRow.Copy _

       Destination:=DestCell66

   Application.CutCopyMode = False

End Sub
Bob Phillips - 09 Nov 2006 09:57 GMT
...

       Set RngToFilter66 = .Range("EK6", .Cells(.Rows.Count,
"EK").End(xlUp))
       On Error Resume Next
       RngToFilter66.AutoFilter Field:=1, Criteria1:="<>"
       On Error GoTo 0
       If Err.Number <> 0 Then
           MsgBox "Nothing filtered"
           Exit Sub
       End If
       If RngToFilter66.Cells.SpecialCells(xlCellTypeVisible).Count = 1
Then

...

Signature

HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

> Hi to all,
>
[quoted text clipped - 114 lines]
>
> End Sub

Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.