Hi, cplettner,
code for keeping the sheets and only adding new ones if new names are introduced may look like this:
Sub EF941913_2()
Dim rngCell As Range
Dim rngArea As Range
Dim wsList As Worksheet
Dim wsManag As Worksheet
Dim wsNew As Worksheet
Dim lngLast As Long
Set wsList = Sheets("Property List")
Set wsManag = Sheets("Property Managers")
With wsManag
Set rngArea = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
End With
For Each rngCell In rngArea
With wsList
If .AutoFilterMode Then .Range("A1").AutoFilter
.Range("A1").AutoFilter
.Range("A1").AutoFilter , field:=1, Criteria1:=rngCell
lngLast = .Range("A" & Rows.Count).End(xlUp).Row
If lngLast > 1 Then
If WorksheetExists(rngCell.Offset(0, 1).Value) = False Then
Set wsNew = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Else
Set wsNew = Worksheets(rngCell.Offset(0, 1).Value)
wsNew.UsedRange.ClearContents
End If
.Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
wsNew.Range("A1").PasteSpecial xlValues
wsNew.Name = rngCell.Offset(0, 1).Value
Set wsNew = Nothing
End If
.Range("A1").AutoFilter
End With
Next rngCell
Set rngArea = Nothing
Set wsManag = Nothing
Set wsList = Nothing
Application.CutCopyMode = False
End Sub
Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name <> "")
On Error GoTo 0
End Function
Ciao,
Holger
Bookmarks