View Full Version : Autofiltered values to a new sheet
sindhuja
03-30-2012, 11:15 PM
I have a sheet named details in which i need to filter the column P which contains value *park* and copy the filtered values to sheet named park.
again show all data in column p and filter in colum Q, copy the results in sheet park after the last used row. The same thing in column R,.
can some one assist with this requirement.
i tried the below code but the results are in seperate sheet but i need in the same sheet that too only with the word *park* as criteria.
Option Explicit
Public Sub MoveToTab()
Dim rngStart As Range
Dim rngEnd As Range
Dim rngCell As Range
On Error GoTo ErrHnd
With Worksheets("Details")
    'set start as A2 i.e., after heading row in column A
    Set rngStart = .Range("A1")
    'set end - last used row in column Q
    Set rngEnd = .Range("A" & CStr(Application.Rows.Count)).End(xlUp)
    
    'loop through cells in column A
    For Each rngCell In Range(rngStart, rngEnd)
        'test if tab exists
        On Error Resume Next
        If Not Worksheets(rngCell.Text).Name <> "" Then
            On Error GoTo ErrHnd
            'No worksheet of this name - so create one and copy row
            Worksheets.Add After:=Worksheets(Worksheets.Count)
            Worksheets(Worksheets.Count).Name = rngCell.Text
            rngCell.EntireRow.Copy Destination:=Worksheets(rngCell.Text).Range("A1")
            Else
            On Error GoTo ErrHnd
            'worksheet exists
            'copy row to end of used range
            rngCell.EntireRow.Copy Destination:=Worksheets(rngCell.Text).Range("A1") _
                    .Offset(Worksheets(rngCell.Text).UsedRange.Rows.Count, 0)
        End If
    Next rngCell
End With
Exit Sub
'error handler
ErrHnd:
Err.Clear
End Sub
shrivallabha
04-01-2012, 06:54 AM
Hi,
You can use macro recorder to get this done. The resultant macro can then be edited to suit your requirements.
So record the macro and post back your code.
sindhuja
04-03-2012, 10:15 PM
Sub Macro1()
'
' Macro1 Macro
'
 
'
    Range("AS1").Select
    ActiveSheet.Range("$A$1:$BX$4153").AutoFilter Field:=42, Criteria1:= _
        "=*park*", Operator:=xlAnd
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
   
    Selection.Copy
    ActiveWindow.SmallScroll Down:=117
    Sheets.Add After:=Sheets(Sheets.Count)
    ActiveSheet.Paste
    Range("A1").Select
    Sheets("Sheet").Select
    Application.CutCopyMode = False
    ActiveSheet.ShowAllData
    Range("AS1").Select
    ActiveSheet.Range("$A$1:$BX$4153").AutoFilter Field:=43, Criteria1:= _
        "=*park*", Operator:=xlAnd
    ActiveWindow.SmallScroll Down:=-12
    Rows("148:148").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Sheets("Sheet3").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=9
    Range("A928").Select
    ActiveSheet.Paste
    ActiveWindow.SmallScroll Down:=21
    Range("A1").Select
    Sheets("Sheet").Select
    Application.CutCopyMode = False
    ActiveSheet.ShowAllData
    Range("AR1").Select
    ActiveSheet.Range("$A$1:$BX$4153").AutoFilter Field:=44, Criteria1:= _
        "=*park*", Operator:=xlAnd
    Rows("294:294").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Copy
    Sheets("Sheet3").Select
    ActiveWindow.SmallScroll Down:=-15
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=18
    Range("A955").Select
    ActiveSheet.Paste
    Cells.Select
    Cells.EntireColumn.AutoFit
    Application.CutCopyMode = False
    With Selection.Font
        .Name = "Arial"
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    With Selection.Font
        .Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    Selection.Insert Shift:=xlDown
    Selection.Insert Shift:=xlDown
    Cells.Select
    ActiveWindow.DisplayGridlines = False
    Range("A4").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End Sub
 
Here is the recorded macro. Number of rows varies in sheet and as well as in sheet3
shrivallabha
04-04-2012, 08:13 PM
Lightly tested. It seems that you have added a sheet for your report. So I have continued with the same idea.
Sub Macro1_Edited()
Dim lLastRow As Long
Dim ws As Worksheet
Application.ScreenUpdating = False
With ActiveSheet
    lLastRow = .Range("A" & Rows.Count).End(xlUp).Row
    
    .Range("$A$1:$BX$" & lLastRow).AutoFilter Field:=42, Criteria1:= _
    "=*park*", Operator:=xlAnd
    
    Set ws = Sheets.Add(After:=Sheets(Sheets.Count))
    
    With .Range("$A$1:$BX$" & lLastRow)
        .SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A1")
    End With
    
    .ShowAllData
    .Range("$A$1:$BX$" & lLastRow).AutoFilter Field:=43, Criteria1:= _
    "=*park*", Operator:=xlAnd
    
    With .Range("$A$2:$BX$" & lLastRow)
        .SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A" & Rows.Count).End(xlUp)(2)
    End With
    
    .ShowAllData
    .Range("$A$2:$BX$4153").AutoFilter Field:=44, Criteria1:= _
    "=*park*", Operator:=xlAnd
    
    With .Range("$A$2:$BX$" & lLastRow)
        .SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("A" & Rows.Count).End(xlUp)(2)
    End With
End With
ws.Cells.Borders.LineStyle = xlNone
With ws.UsedRange
    .EntireColumn.AutoFit
    With .Font
        .Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    With .Borders
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
End With
ws.Activate
ActiveWindow.DisplayGridlines = False
Application.ScreenUpdating = True
End Sub
sindhuja
04-04-2012, 10:33 PM
Thank you so much... let me try this and get back to you if i need any assistance..
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.