Hi CGL,

I have code just for this that works great. With some slight modifications specific to your requirements, it should do what you need.

Have a look:

Sub Add_Worksheet_Name_From_Cell()
Dim snewsheet As String
Dim wkSheet As Excel.Worksheet
Dim exists As Boolean

Application.ScreenUpdating = False

For Each wkSheet In ThisWorkbook.Worksheets
    If wkSheet.Name = "FullPlayerStatsW" & Sheet1.[Q3].Value Then
       exists = True
       snewsheet = wkSheet.Name
       Exit For
    End If
Next wkSheet

If exists = False Then
    Dim NumberSheets As Integer
    NumberSheets = ActiveWorkbook.Worksheets.Count
    Sheets.Add After:=Sheets(NumberSheets)
    ActiveSheet.Name = "FullPlayerStatsW" & Sheet1.[Q3].Value
    snewsheet = ActiveSheet.Name
    Sheet1.Range("AK112:AU171").Copy
    Sheets(snewsheet).Range("A65536").End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues
    Sheet1.Activate
Else
    Sheet1.Range("AK112:AU171").Copy
    Sheets(snewsheet).Range("A65536").End(xlUp).Offset(0, 0).PasteSpecial xlPasteValues
    Sheet1.Activate
End If

Dim wks As Worksheet

    For Each wks In ActiveWorkbook.Worksheets
           If LCase(wks.Name) Like LCase("FullPlayerStatsW*") Then wks.Visible = False
    Next wks

End Sub
It does check if the proposed sheet name already exists but it only uses one specific cell as a reference for what to name the new sheet. Other than that small hurdle of having it work from the entire range of your list of vendors, you should be able to replace names of worksheets and ranges and then duplicate it for each specific vendor in your column list. I'm sorry though, I'm not a good VBA programmer so I don't know how to get this to reference the entire list of vendors instead of just the specific cell.... I hope it helps.

FYI - the code at the end hides the newly created sheet and you will probably want to remove that part.