Link to home
Create AccountLog in
Avatar of Euro5
Euro5Flag for United States of America

asked on

VBA save new files in same path

This code is working perfectly, but it saves to the desktop instead of path of the original.
Also, I want to add the timestamp if possible in the file name?
This will close out the project for me - so any help is so greatly appreciated!! THANK YOU! :)

Sub filter()
Application.ScreenUpdating = False
Dim x As Range
Dim rng As Range
Dim rng1 As Range
Dim last As Long
Dim sht As String
Dim newBook As Excel.Workbook
Dim Workbk As Excel.Workbook

'Specify sheet name in which the data is stored
sht = "This Sheet"

'Workbook where VBA code resides
Set Workbk = ThisWorkbook

'change filter column in the following code
last = Workbk.Sheets(sht).Cells(Rows.Count, "Q").End(xlUp).Row

With Workbk.Sheets(sht)
Set rng = .Range("A1:Q" & last)
End With

Workbk.Sheets(sht).Range("Q1:Q" & last).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AA1"), Unique:=True

' Loop through unique values in column
For Each x In Workbk.Sheets(sht).Range([AA2], Cells(Rows.Count, "AA").End(xlUp))

With rng
.AutoFilter Field:=17, Criteria1:=x.Value

'Add New Workbook in loop
Set newBook = Workbooks.Add(xlWBATWorksheet)

newBook.Sheets.Add(After:=Sheets(Sheets.Count)).Name = x.Value
End With

'Save new workbook
newBook.SaveAs x.Value & ".xlsx"

'Close workbook
newBook.Close SaveChanges:=False

Next x

' Turn off filter
Workbk.Sheets(sht).AutoFilterMode = False

With Application
.CutCopyMode = False
.ScreenUpdating = True
End With

End Sub

Open in new window

Avatar of Norie

Link to home
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of Euro5


Norie!!!!!! THANK YOU!!!!