Re: Copy / Filter Data Based On Data In Column Occuring x Times
if you prefer a code version, assuming your data is on sheet2:
Sub Sheets_By_Domain_Over_Ten()
Dim wSheetStart As Worksheet
Dim strText As String
Dim rngSource As Range, rngUnique As Range
Dim rngSourceLess As Range
Application.ScreenUpdating = False
Set wSheetStart = ActiveSheet
wSheetStart.AutoFilterMode = False
Set rngSource = wSheetStart.Range(Cells(1, 4), Cells(Cells.Rows.Count, "D").End(xlUp))
Set rngSourceLess = wSheetStart.Range(Cells(2, 4), Cells(Cells.Rows.Count, "D").End(xlUp))
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("UniqueList").Delete
Worksheets.Add().Name = "UniqueList"
With Worksheets("UniqueList")
rngSource.AdvancedFilter xlFilterCopy, rngSource, .Range("A1"), True
Set rngUnique = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
End With
On Error Resume Next
On Error GoTo 0
For Each cell In rngUnique
With wSheetStart
wSheetStart.Activate
On Error Resume Next
mp = Evaluate(Application.WorksheetFunction.CountIf(Range(Cells(2, 4), Cells(Cells.Rows.Count, "D").End(xlUp)), cell.Value))
If mp < 10 Then GoTo Nxt
Worksheets("UniqueList").Range("A1").AutoFilter 1, cell.Value
Worksheets(cell.Value).Delete
Worksheets.Add().Name = cell.Value & " Data"
.Activate
Cells(1, 4).AutoFilter Field:=4, Criteria1:=cell.Value
rngSourceLess.SpecialCells(xlCellTypeVisible).EntireRow.Copy _
Destination:=Worksheets(cell.Value & " Data").Range("A1")
If cell.Value = "" Then Exit For
.AutoFilterMode = False
.Activate
End With
Nxt:
Next cell
wSheetStart.AutoFilterMode = False
Sheets("UniqueList").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Display More