It sounds like your code creates a new workbook, but you want it to use a template instead. The way to do that is to open the template, instead of creating a new workbook, then immediately do a SaveAs with the desired name/path. Then everything else is the same. Then you Save again before closing.
However, I can't reconcile that with the code. If you are creating a new workbook, you're not doing it in the code below; see my notes in green. Do you have other code as well?
(I am still unclear on your overall problem because you said, "...sent to a worksheetD( on a new workbook B(this workbook has never been created)...". I don't understand how you can do anything in a workbook that has never been created.)
Private Sub btn_StartNewSeason_Click()
Dim wbNew As Workbook
Dim wsNew As Worksheet
Dim Rng As Range
Dim i As Long
Dim J As Long
Set wsNew = ThisWorkbook.Worksheets.Add ' This line adds a new worksheet to ThisWorkbook, which is the workbook containing this code
' There is no new workbook created here.
wsNew.Name = "Client List"
Set Rng = wsNew.Range("A1")
For i = 0 To lstBrandsNewSeason.ListCount - 1
For J = 0 To lstBrandsNewSeason.ColumnCount - 1
Rng.Offset(i, J).Value = lstBrandsNewSeason.List(i, J)
Next J
Next i
wsNew.Move
Set wbNew = ActiveWorkbook ' This does not create or open a workbook. ActiveWorkbook could be the same
' as ThisWorkbook, or it could be a different one. Not possible to tell from this code,
' it depends on what was going on when this code is called.
' (That's why I discourage the use of ActiveWorkbook unless it's a general purpose macro
' called by the user to apply to the currently active workbook)
wbNew.SaveAs ThisWorkbook.Path & Application.PathSeparator & txtNewSeasonName.Value
Unload Me
End Sub
Bookmarks