Macro To Batch Copy And Save Worksheets With File Names Listed In Cells?
Oct 23, 2013
I have a workbook that contains worksheets. They are listed as follows:
Sheet 1ABCDEFG
In cells A1 - A49 I have text. What I would like to do is to have a macro that I can run that will basically copy and save new workbooks with sheets A - G copied over and have the new workbook saved with the file name that I have denoted in cells A1 - A49 on Sheet 1. Also, the macro would ask me where I want to save the new Workbooks.
For example, if this were Sheet 1, Column A then the cells below would be the saved name of the new workbooks and the new workbooks would have Sheets A - G in themRed
Blue
Purple
Black
White
Yellow
Orange
Green
Gray
Brown
One more piece of information, the file that is being copied and saved is large (~80MB). If there is a macro that would allow me to simply "save as' the workbook and the Saved Workbooks would be named using the data in Sheet 1, that would work as well in case copying, pasting, then saving may take more time
I have a list of filenames in Sheet1, range A1:A20. These files can be found in URL http://mysite/x/y. Where y is the filename (including the extension) and x is the 1st 4 characters of the filename. So if in A1 I have the filename AB1234.pdf, this can be found in the link: http://mysite/AB12/AB1234.pdf. Is there a was in VBA where I can loop thru the list in A1:A20, and copy each from their respective URLs and save into C:Documents and Settings ?
I have a file that opens a number of files from a source directory (which is identified by the User at run-time) & merges the source data into various worksheets (which all works fine)
Now what I'd like to be able to do is to be able to (silently) save multiple worksheets back to separate files in the original directory based on each worksheet name - e.g:
"Sheet1" and "Control" Sheet" are saved to SourceDirectorySheet1.xlsm "Sheet2" and "Control" Sheet" are saved to SourceDirectorySheet2.xlsm "Sheet3" and "Control" Sheet" are saved to SourceDirectorySheet3.xlsm ... "Sheetn" and "Control" Sheet" are saved to SourceDirectorySheetn.xlsm
(Note that "Control Sheet" also contains Command Buttons & VBA which I'd like to preserve)
I wanted to run a batch file which does something like,
Dir /b >Test.csv Start Test.csv
And then runs an Excel macro once the workbook is open.
I looked into this and discovered that it’s not really that possible to run an excel macro through batch file but other options were to use ‘Workbook_Open’ etc.
I thought this might cause problems because Test.csv doesn’t contain a macro to auto open and because csv’s usually don’t like macros.
I do however have personal.xlsb which opens every time if that helps.
I have a current macro that saves each sheet as their own file. The first 10-15 sheets are not really necessary, so I typically delete them once the macro has run. I am looking to add two things to my current code:
1. Add a tab called Start. Make the macro look for 'Start' tab and then just save each sheet to the right of that as its own file.
2. Save each sheet in the macro as just a copy/paste value. They current have a lot of links and it makes each file close to 3MB. That makes it incredibily difficult to paste all in one email.
Here is the current code:
Sub CreateWorkbooks() 'Creates an individual workbook for each worksheet in the active workbook. Dim wbDest As Workbook Dim wbSource As Workbook Dim sht As Object Dim strSavePath As String On Error GoTo ErrorHandler
Want to do something *almost* exactly like a previous post but that post is now closed. Extract Each Sheet To Text File & Save as Sheet Name .txt` I want to extract data from individual worksheets from a workbook in excel to individual text files with the **same name as the original excel file** plus incrementing suffix.
don't delete - this is not a duplicate post. Previous code 1) creates text files with "sheet name" as was the original post's intent (not "file name") and 2) it does not iterate through each sheet (only processes Sheet1 regardless of selected sheet in the workbook)
my formula is as follows: =(VLOOKUP(A7,'[Monthly AR Analysis - Feb09.xls]AR - Current'!$A$1:$I$153,8,FALSE)). I will be using this for formula on about 15 different worksheets ... my issue is the file name changes every month and currently I have to go in and do a find and replace, I would like to have one main page where I could change the file name month and it will change all the rest.
ie: Monthly AR Analysis - Feb09.xls next month changes to Monthly AR Analysis - Mar09.xls .... So basically each month I want it to pick up the new file that has been saved with the new name. So what I would want is to be able to have a cell that I could change the Feb09 to Mar09 and then it would do the same to all the worksheets. I attempted to use CONCATENATE to change file name and it worked but will not work within the Vlookup.
I use Excel 2003 & I am trying to design a worksheet to keep track of signs I make & their order numbers. I want the names listed alphabetically. When I add a new name & I arrange the column alphabetically, the columns with the order numbers do not relocate along with the names column.
I have been at this for days and i can't quite get it right.
I have multiple worksheets of clients all formatted the same.
I need a Macro/VBA that will take from Each sheet onto a master sheet the Name of the Client(Cell I1 from the sheet)
Under the name I need the text Authorization #: then the data(C3) Under that I need the text Dates of Service Expiration: then the data (D5) Then the text 90801 Balance: then the data from (C30) Then the text 90806 Balance: then the data from (F30) Then the text 90847 Balance: then the data from (I30) Then the text 90853 Balance: then the data from (L30)
Then a couple Spaces then the same exact data from the next sheet...till all the work sheets are done.....
I need to make this macro read FOLDER names instead of FILE names. When I posted this question yesterday to get this macro, I wasn't told that each file in its own folder. I need the folder names now. _____________________________________
Sub test() With Application.FileSearch .NewSearch .LookIn = "C:Ford" .SearchSubFolders = False .Filename = "*.*" .FileType = msoFileTypeAllFiles If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Cells(i, 1) = .FoundFiles(i) Next i Else Cells(i, 1) = "No files Found" End If End With End Sub
I have been at this for days and i can't quite get it right. I have multiple worksheets of clients all formatted the same. I need a Macro/VBA that will take from Each sheet onto a master sheet the Name of the Client(Cell I1 from the sheet) Under the name I need the text Authorization #: then the data(C3) Under that I need the text Dates of Service Expiration: then the data (D5) Then the text 90801 Balance: then the data from (C30) Then the text 90806 Balance: then the data from (F30) Then the text 90847 Balance: then the data from (I30) Then the text 90853 Balance: then the data from (L30)
Then a couple Spaces then the same exact data from the next sheet...till all the work sheets are done.....is it possible?
Dave responded by suggesting the following:
Sub CopyFromAllSheetsButMaster() Dim wSheet As Worksheet Dim wsMaster As Worksheet
Set wsMaster = Worksheets("Master")
For Each wSheet In Worksheets If UCase(wSheet.Name) <> "MASTER" Then With wSheet .Range("I1").Copy _ Destination:=wsMaster.Cells(Rows.Count, "A").End(xlUp)(2, 1) 'More Copy Method code here End With End If Next wSheet End Sub...
I am attempting to create a macro that will loop through a range, each cell of which contains a worksheet name which needs to be activated in turn. My limited knowledge says that either of the two techniques below should work, but they do not.
Sub SelectSheet() For i = 2 To 50 Sheets(Range(("J" & i))).Select Next End Sub
OR
Sub SelectSheetv2() For i = 2 To 50 Sheets((Cells(i, 10))).Select Next End Sub
I know this is an excel forum but i'm struggling with something. i need to create a batch file that maps a network drive so far my searches have uncovered this
After using VBA code to save multiple workbooks into single workbook the file hangs (states not responding) - I uninstalled 32 bit version and installed 64 bit, no difference.
Each worksheet has look up tables, formulas and graphing.
I have a macro that copy one sheet of the Active workbook and sends it via email.
I need to add a code in this sheet so when one opens it from the email, with a command button to be able to save the file to specific, fixed folder on the local network with it’s original file name.
I was trying to run the shell command in VBA (excel2007) on a .BAT(batch) file. While running the macro, the DOS command prompt appears and goes away in a flash but the function of the .bat is not performed which makes me think that the shell command isnt functioning properly. I had this proper earlier also with a few Exe's.
the line of the macro that calls is (c is the path for the batch file) :
Call Shell(c, vbNormalFocus)
Could any of you help me with some suggestions regarding this problem.
Just to confirm, the batch file on itself works absolutely fine and it looks like it doesnt take more than 2 seconds to run it. It also does not wait for any input from the macro. it is an individual batch just included in the macro.
i have batch file that run from VBAexcel But the thing is i dont want to run batch file
i want everything on VBA . for example you use vba to cmd and then run this line of command
i have try but i just new to VBA and programing
how can i do it
here the code
this is from batch
Code: @echo off >summary.txt ( for %%F in (*chkpackage.log) do findstr /l %1 "%%F" nul||echo %%F:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A:N/A )
I'm working on my first VBA project that requires 12 fields to be manually input of which one field is a file path. I need this path for multiple reasons, but the one reason I'm having a problem with is using the location of the path in conjunction with calling a bat file or executing a cmd prompt that is at that path.
Path Location, minus file name:
Code: sheets("b. Fill Out Required Info").Select Range("B18").Select Actual Path found in B18: C:UsersNickDesktopSubmission ToolTest Files
File attempting to execute:
CopyFileNames.bat
I can manually put all of this together and get what I want by using:
The problem is, every time this will be used, a different path will be used, but the same batch file name will be used. So, rather than having to manually input the file path every time, is there a way to replace "C:UsersNickDesktopSubmission ToolTest Files" with the cell reference of the path listed above? I've tried different methods of this but I cannot seem to get it.
It would be even better if I could just use the cmd prompt found within the batch and run it directly from vba; the prompt I'm running is as follows:
Code: cd C:UsersNickDesktopSubmission ToolTest Files dir /b/o |find ".xml">ListOfFileNames.txt
How can I put that cmd into VBA? I tried different versions of this with no success:
Code: Shell "cmd.exe /c cd C:UsersNickDesktopSubmission ToolTest Files dir /b/o |find ".xml">ListOfFileNames.txt"
Notice that the path is the same as the path shown in B18 above. It would be great if that path would be dependent on the cell referenced above.
I have a macro which successully saves a worksheet as new file to another file path....(below)...but I can't figure out how to close this new file and return to the original file...
Dim myPath As String, fName As String myPath = Sheets("Date").Range("C8").Text fName = Sheets("Date").Range("C9").Text Sheets("Sage CSV File").Copy With ActiveWorkbook .SaveAs Filename:=myPath & fName End With'
I have a project I need to get done, and I've done most of it. But, there are a few things in VBA I'm unfamiliar with, and I was wondering if I could send you the file so you could take a look at it, and see if you're able to do it. This involves VBA. Honestly shouldn't be too too difficult, but something beyond what I can do. I have the specifications listed already, and I am ready to send it to you. Anyone feel comfortable taking a look at it?
Code: Sub Select_All_Sheets_And_Export() Dim wsWorksheet As Worksheet, wbNew As Workbook
Worksheets.Select Cells.Select Selection.Copy
[Code] ........
I have come up with the above code to select all sheets in my workbook and convert to values and then split and save each worksheet as its worksheet name in the same directory.