Perhaps:
Const csSAVE_PATH As String = "P:\Initial Washroom Solutions\Finance\manacc\MAN_ACC\RENTOKIL\2014\Mth0314\Transactional Reports\Hygiene\"
' you may change this month
Const csMONTH_NAME As String = "March14"
Sub PagesByDescription()
Dim rRange As Range, rCell As Range
Dim wSheet As Worksheet
Dim wSheetStart As Worksheet
Dim wPaste As Worksheet
Dim strText As String
Set wSheetStart = ActiveSheet
wSheetStart.AutoFilterMode = False
'Set a range variable to the correct item column
Set rRange = Range("A1", Range("A65536").End(xlUp))
'Delete any sheet called "UniqueList"
'Turn off run time errors & delete alert
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("UniqueList").Delete
'Add a sheet called "UniqueList"
Worksheets.Add().Name = "UniqueList"
'Filter the Set range so only a unique list is created
With Worksheets("UniqueList")
rRange.AdvancedFilter xlFilterCopy, , _
Worksheets("UniqueList").Range("A1"), True
'Set a range variable to the unique list, less the heading.
Set rRange = .Range("A2", .Range("A65536").End(xlUp))
End With
On Error Resume Next
With wSheetStart
For Each rCell In rRange
strText = rCell
.Range("A1").AutoFilter 1, strText
Worksheets(strText).Delete
'Add new workbook with sheet named as content of rCell
Set wPaste = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
wPaste.Name = strText
'Copy the visible filtered range _
(default of Copy Method) and leave hidden rows
.UsedRange.Copy Destination:=wPaste.Range("A1")
wPaste.Cells.Columns.AutoFit
With wPaste.Parent
.SaveAs csSAVE_PATH & strText & " Transactional Report " & csMONTH_NAME, xlNormal
.Close savechanges:=False
End With
Next rCell
End With
With wSheetStart
.AutoFilterMode = False
.Activate
End With
On Error GoTo 0
Application.DisplayAlerts = True
End Sub
Bookmarks