Merging Multiple Workbooks With Macro
Sep 14, 2009I have multiple files with data in that I need to merge, basically append the data from various files to an existing file. Does anyone know of a macro that can be written to do this?
View 10 RepliesI have multiple files with data in that I need to merge, basically append the data from various files to an existing file. Does anyone know of a macro that can be written to do this?
View 10 RepliesI have a series of duplicate workbooks to allow for distribution to multiple users. The workbooks have a userform which allows the user to save records into a worksheet. I would like to have a standalone workbook which is a merge of all of the worksheets.
Since data will be contiuosly entered, I want the master workbook to have a "constant" link and alway but current without need to run anything.
I will have about 100 files to merge together that are in one directory. Is it possible to merge all workSHEETS named "Bob" from each workBOOK and end up with just one master file?
I found this code on this web site (no proper reference!). It doesn't work for me. Yes, I changed the directory and it still didn't work. I will have 12 columns (A:L) and differing # of rows in each "Bob" worksheet.
VB:
Sub g_CombineMultWB_AllXLSFiles() ' This Will combine all EMALL XLS files located in the
' S:DMSMSPOMSMaster POMS NIIN DataMaster EMALL Data FilesEMALL Excel Folder
' into a single worksheet in a newly created (or previously existing) workbook
[Code]....
I'm trying to take a single worksheet from a workbook and merge them all into one workbook. In that master workbook I'm looking to have each of the worksheets on different tabs and the tab names as the original workbook name.
So if I have Workbook1, Workbook2, Workbook3, Workbook4 in a folder. I want to open a new spreadsheet, run this macro, select the folder with the Workbooks in, and have it take the range selected from the worksheet 'other' from each of the workbooks and generate a 'master' Spreasheet where each tab would be called Workbook1, Workbook2, Workbook3, Workbook4 and the contents would be from the 'other' tab
I found some of Ron de Bruin's code online which I've tried to customise.
Currently this takes a range from the tab specified, puts it into an array and then pastes it all into different columns on one worksheet. change this so that it creates a new worksheet for each original workbook, and names it after that workbook.
I am attempting to write code for a macro that can cycle through about 30 excel workbooks and merge the data. getting the raw data on one sheet is not a problem, but I also need to sort similar data into corresponding columns while merging such that all data from the workbooks with a certain column heading will be in a single column with a single heading on the summary sheet. The problem is that the column headings on the source workbooks are not always standardized, i.e. "F high", "high F". Each sheet has several columns that look like the one below, with a header at the top and a series of numbers. (please ignore the dashes, I just used them to line up the columns in this post, in excel each value is in a different cell)
F Low---F High---V Low
721-----999---804
721-----999---0
721-----999---0
711-----720---786
711-----720---713
My vba skills are very basic, so I have been approaching this problem with a mountain of if..else and InStr commands, which doesn't seem like the best method and isn't working.
We have a master worksheet, and I cant let staff see it, but I want them to update 'their bits' themselves, rather than email the admin staff and let them update the master sheet..
every job is on its own row and contains a unique ID.
is there a way i can merge their data in to the correct row and column(s) on the master sheet?
i've been playing with datasources etc
Excel 2010
number
string
string
string
date
string
string
date
string
string
string
string
string
string
I have an excel spreadsheet supplied by a client, let's call this the master sheet, with about 500 URLs and I've been asked to gather information from Google Analytics and place in a spreadsheet. This spreadsheet can't be changed as it goes into their CRM system.
On the master sheet, we have a list of URLS, what I need to do is go through each URL and place the number of visits to each URL on a weekly basis.
Google Analytics excel spreadsheet, will spit out a list of URLs and the page visit numbers.
My question is:
If I have both spreadsheets open, the master spreadsheet and the information from Google Analytics spreadsheet. Is there a way of having both sheets open and doing an exact match on the URLs between both spreadsheets, so we can copy and paste the information directly.
Or even a formula that says something like:
If the master sheet spread has the same URL in the Google Analytics spreadsheet, paste the relevant information into the correct cells?
As you can see, doing this manually will take a long time. I'm just looking for a productive method to save time.
Is it a good idea to merge xls workbooks in to one master workbook?
I have read online that some say it is ok and nothing will happen and others say it isn't a good idea because macros and formulas will not work right once merge in to one workbook.
So I have many workbooks with 2 - 4 worksheets in them. All have formulas as well as macro's and everything is working fine just as it is. But I would like to have 1 Master workbook with all workbook/worksheets combined in to 1, so that I can stop opening so many workbooks.
I have a few hundred workbooks that I am merging into a single file. I found the following vba code that performed this task very well.
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object[code]....
After I merged the data, I realized that I needed to know the source file that each row of information comes from.
How can I modify the above script to copy the filename and add it as an additional column of information when each sheet is copied into the master file?
For Example:
Currently If I have 3 files:
File 1:
1 2 3
4 5 6
File 2:
a b c
d e f
File 3:
v w x
y a b
Running what I currently have will give me:
1 2 3
4 5 6
a b c
d e f
v w x
y a b
I have 2 books right now. Each book has 2 colums of data (See attached jpg.):
Book 1 has a column for "phone number" and another for "street"
Book 2 has a column for "phone number" and another for "house number"
I would like to merge these books together so that all the information I have about these contacts is in the same book. Column A will be the phone numbers, column B will be the street name, and column C will be the house number. As you can see by looking at book 2, I only have house numbers for some of the phone numbers in book 1. My goal here is to have book 2 "look at" book 1, and add any information book 1 does not have (such as house number) to the relevant row (the row where the phone numbers match). This new book will by my book 3. I've attached a jpg. with how book 1 looks, book 2 looks, and how I want book 3 to look.
I have two workbooks, Quotes and Invoices. They have a common field (column) between them called "QuoteID". Since not all quotes turn into invoices, there are more rows in the Quotes workbook than the Invoices one. Is it possible to match the "QuoteID" cell values in Invoices to just the ones in Quotes that match up, and then merge them into a new worksheet? If not, is there an add-on that will accomplish this?
View 1 Replies View RelatedI have 30 xlsx files in a folder and I want the first sheet of all that files to be merged to a new workbook. The thing is I don't want the macro to copy paste the value in to the same sheet of the new master sheet like Ron's excel merge tool does. I want a macro to create new 30 sheets on the master file and copy the data from source files. And I want the newly added sheets to be renamed as the source file name. This works well except the sheet renaming thing.
Sub Merge2MultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
[Code].....
Ive just started using vba for excel and put together a very simple peice that uses the goalseek function. See below.
Public Sub calc_vol()
Dim currentcell As Range
Worksheets("sheet1").Activate
Set currentcell = Worksheets("sheet1").Range("bl2")
Do While Not IsEmpty(currentcell)
With Application
. Iteration = True
.MaxIterations = 100
.MaxChange = 0.00000001
Application. ScreenUpdating = False
Application.Calculation = xlCalculationManual
End With
ActiveWorkbook.PrecisionAsDisplayed = False
currentcell.GoalSeek 0, currentcell.Offset(0, -13)
Set currentcell = currentcell.Offset(1, 0)
Loop
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
The code works great (a little slow - but fine for 65,000 lines), however i have nearly 100 workbooks that i have to run this macro for. I was wondering if anyone knew how i could manipulate it so that i could incorporate all 100 files into the macro, therefore running the macro once for all 100 files. If this is not possible is it possible to link multiple worksheets.
I have approximately 30 workbooks for which i open and run a macro to change the look and feel for client perusal.
I normally open each of the 30 workbooks and run the macro for each one.
Is there a way I can run the macro to apply to all workbooks at once?
I am looking for a way to close a group on Workbooks that are in separate instances of Excel.
These Workbooks get opened similar to running a Powerpoint program, but much different usage than Powerpoint.
AS AN EXAMPLE:
I have 7 Workbooks open in Excel . . . Could be more or less.
Each workbook has 2 sheets, the "User Sheet" (not the actual name, as all user sheet names vary) and a sheet named "Setup." (Always named "Setup.")
On the "Setup" sheet I have a list of all the possible Workbooks that I want to close. For reference purposes only, I'll call this list "To Close". All 7 Workbooks would be listed, but not all of them would be opened. If any particular Workbook on the "To Close" list is not open, it would simply be bypassed.
Example of list: Column A
Row 25 has the name of Workbook A
Row 26 has the name of Workbook B
Row 27 has the name of Workbook C
And this would continue down to the last Workbook possibly open. I will know how many Workbooks could possibly be open.
Other workbooks could also be open, but they would not be closed by this macro. In this example, I would only want Workbooks A & B & C closed.
I would have rows 25 thru 27 (or more) listed in the same location on the "Setup" sheet of each Workbook.
Each "User Sheet" would have a macro called "Close Group"
The macro would have to search through all open Workbooks and when it found one of the Workbooks listed for closing, it would close that workbook. Then, the macro would look for the next Workbook on the "To Close" list.
The Active Workbook would also be on the list and that also needs to be closed. I would guess that this would be the last Workbook to close, but it really would not make any difference if the macro would still work. I think the macro has to have the active Workbook open to close the others.
After the list has been gone through, the macro would stop.
NOTE: Each Workbook has it's own "To Close" list. If it would help, I can leave the Workbook Name A off of the list in Workbook A. I would do the same on Workbook B, etc. Then the Active Workbook could automatically be closed at the end of the macro.
I have been looking everywhere and I can't seem to find what I am looking for. I want to create a Macro that will go into a folder, search every Workbook (each with multiple Worksheets), and copy and paste the data onto a single Worksheet. The data that I want will begin in Row 3 of each Worksheet (the first two rows are titles and headers). The formatting will be the same for each sheet.
The only other part is that Column G has the following formula in each cell that I would like to keep if possible.
Code:
=IF(AND(ISNUMBER(F4),ISNUMBER(D4)),"Complete",IF(ISNUMBER(D4),TODAY()-E4,0))
I have 400+ workbooks in a folder. If they are all .xlsm (macro-enabled) workbooks, how can I import a macro (.cls file) to a particular sheet (sheet1) in each workbook using VBA so that when a user on another machine opens one of them, the macro works? Right now, I have this code to loop through all workbooks; I only need the import function to go in the middle. Copying and pasting or importing manually 400+ times is just plain unrealistic!
VB:
Sub OpenfileUpdate()
Dim strFile As String
mFolder = "C:files1Files"
strFile = Dir(mFolder & "*.xlsm*")
Do While strFile <> ""
[Code]....
For work I have to create copies of the same workbook for every day of the month. I have got the following to do it properly, which may not be the best way so I am open to suggestions, but I don't want it to save this macro in every workbook. There are however other macros that I do want it to take with it, just not this one.
Sub SaveByDate()
Dim a As Integer, b As Integer, c As Integer
' number of days in month + 1 (this is just a test; for Jan a = 32)
a = 6
' start date
b = 1
c = 0
For c = 1 To a
If c < a Then
MyMonth = "Jan"
MyDay = b
MyFileName = MyMonth & " " & MyDay & " 2008 daily report"
ActiveWorkbook.SaveAs Filename:=MyFileName
b = c + 1
End If
Next c
End Sub
I currently have a piece of code that opens all of the files in a folder that are called "*agent*", opens them and copies information. Now, these files come with numbers at the beginning which, are always the same. I only want to open certain files that begin with, for example, 801, 802, 803, 804, 805 and 806. How would I write this into my code? As you can see from the below code, it now looks for the files that all have "agent" in the name, but this is opening files that have that name but are not the right ones. Here is my current macro...
[Code] ....
I hope this isnt as simple as putting "MyFile = Dir(MyFolder & "*801*", "*802*")" etc.
I have a worksheet with the following columns:
Brand
UserName
FirstName
LastName
Email
[Code]....
This is a relatively long list - 1000's. What I'd like to do is create a macro that sorts by brand, and at every change in Brand, copy the user details (Username, firstname, lastname, email) to another workbook with those labels at the top of the table. Upon completion, it saves the workbook with the name of the appropriate brand.
E.g. I'd have 3 workbooks:
- BrandA.xlsx - with the 2 user listed
- BrandB.xlsx - with the 1 user listed
- BrandC.xlsx - with the 1 user listed
I have 17 workbooks which contain similar data and formatting. The only variance is the number of rows of data in each. I want to write a macro in the Master worksheet that will accomplish the following
1. Create a worksheet name in the master workbook with the same name as the workbook that it's pulling data from.
2. Copy over the column headings from columns A:P to the newly created worksheet on the master workbook
3. Copy over all rows that contain the word "down" under column D titled Operational status
The naming convention for the master workbook will be titled "All Switches". The naming convention for the worksheets containing the data are titled Port_Map_on_tiegcsw01, Port_Map_on_tiegcsw02, Port_Map_on_nypgcsw01. There are other names , but I can reference the code an update accordingly.
I found some searches on the forum for creating a macro to copy data between workbooks, but not quite sure how to write the macro for the three functions.
I have been given the following code to transfer data from multiple workbooks within folders and subfolders to retreive the same line of data from each of the workbooks and place them in a master workbook.
the folders are set up as follows,
there is a main folder, (a yearly folder)
within this are 12 monthly folders (named January to December)
within these are four weekly folders (named week 1 -week 4)
contained within these weekly folders are the workbooks that i wish to copy data from.
for example a1 - k1
the code i am using transfers the file names but comes up with #REF! instead of transfering the data
Here is the
VBA Macro to work through a worksheet that consist of static data (tab 4) cost centres and to populate a new work book per cost centre consisting of three tabs for every cost centre found in the static data.
The master Workbook has the following tabs:
Tab 1 is called travel and consist of column a which is the cost centre number (plus 14 other columns)
Tab 2 is called Mobile and consist of column a which is the cost centre number (plus 14 other columns)
Tab 3 is called Expenses. and consist of column a which is the cost centre number (plus 14 other columns)
Tab 4 Static Date column 1 cost centre number and consist of column 1 which is the cost centre number (plus 14 other columns).
If no information found on a specific cost centre, the tab will include the headers and return the words "No transactions for this period"
Whilst splitting data into Tabs the workbooks should check against the Static Data table and include cost center description in Column B of each tab in the new workbook.
If master workbook consist of the following....
Tab 1 is called travel and consist of column 1 which is the cost centre number (plus 14 other columns), cost centres, 555,557,
Tab 2 is called Mobile column 1 cost centre number and consist of column 1 which is the cost centre number (plus 14 other columns) cost centres, 555, 78689,
Tab 3 is called Expenses. column 1 cost centre number and consist of column 1 which is the cost centre number (plus 14 other columns), cost centres, 555,
tab 4 Static Date - column 1 cost centre number and consist of column 1 which is the cost centre number (plus 14 other columns). cost centres, 555, 557,78689
It should output 3 workbooks by cost centre number.
One for 555, which consists of 3 tabs, travel, mobile and expenses.
A second for 557 which has 3 tabs travel, mobile and expenses, but only with data in the travel tab.
A third for 78689 which has 3 tabs travel, mobile and expenses, but only with data for mobile data.
The workbooks will be replicates of the contents within the tabs where column a wil be the cost centre plus 14 additional columns.
I jst need to console data from different workbooks to one worksheet. There are 30 workbooks & each workbook contains one worksheet name as Data. The work i am currently doing mentioned below step wise
1) Open workbook
2) Apply filter on whole data
3) Select dates from "J" Column (E.g 02/10/2014 to 02/20/2014)
4) Then Copy whole filtered data
5)Paste into New workbook
6) Open another worbook
7) repeate Step # 2,3
8)Then paste whole data in below the first data New Workbook (In which we have paste the first data below that i will paste this data)
These steps i have to do manually it takes almost 1hr daily After pasting all 30 workbooks data in one workbook i have to make pivot of it & sent it to my Manager. What i need
I jst want a excel macro that will ask me date range from which i have to pull data from all 30 workbooks.
Once i gave date range will jst click on button say extract or pull. It willl console whole 30 workbooks data from the given date range in a one worksheet.
Is it possible to write a macro whereby the data in numerous cells in a row, say A1:K1 are copied into one cell, L1 then the cells from the next row, A2:K2are copied into the same cell, L1 but on the line below in the cell. I know the above doesn't make much sense so i've attached an example.
View 5 Replies View RelatedFor my work I need to delete duplicate rows with the same name but keep the information in the (original) cell.
for example I have:
Cells: C D E F
Row 1 SoccerPremier League Holland
Row 2 SoccerPremier League Germany
Row 3 SoccerPremier League Poland Poland
I want to keep row 1 and add the data from row 2 & 3 with the data in the same cells so it will be:
Cells: C D E F
Row 1 SoccerPremier League HollandGermanyPolandPoland
As cells D, E, F are empty I would say you can just merge the 3 rows by selecting them and merge.
I need to combine or merge text from cells in 20 rows of data into a format able to be printed. This is evaluation data for a class of 20 students, where each row is one students response to the evaluation, with the last cell in the row containing their comments (text data that may be blank, or up to several sentences in length). Here's what I'm trying to do:
Combine all 20 cells into one cell that can be printed (with word-wrap turned on).
Add a blank line between each comment.
Disregard any blank cells so extra blank lines are not added.
I am trying to do the following:
I have about 50,000 rows of user info, something like the below -
ID
First Name
Surname
Description
1
John
Smith
Associate
2
Rob
Page
Associate
What would be the best way to go about this?
I have several worksheets in a single workbook.
I have the following
employee paymethod earningcode earningtype rate hours amount
jane doe H CR R 5.00 80 400.00
jane doe H CO O 7.50 2 15.00
jane doe H HL R 5.00 8 40.00
jane doe H SE R 10.00 10 100.00
john smith H CR R 6.00 10 60.00
...
I need to have
jane doe CR 5.00 80 CO 7.5 15.00 HL 5.00 8 SE 10.00 100.00
I will have multiple employees. Not all employees will have all 4 earning codes (some will only have one, some will have two, and some will have three).