Copy Worksheets From Active Workbook To A New Workbook
Apr 22, 2009
I am trying to code a Macro so that i can take all the worsheets and save them as individual Workbooks. I wrote a macro that appeared to work, but, after it saves the first sheet as a workbook, i get a debug error.
MS VB Script error:
Runtime error '9':
Subscript out of range
Any advise would be greatly appreciated.
Thank you
Code is below..
Sub saveall()
'
'
For Each ws In ActiveWorkbook.Worksheets
ThisFN = "C:Documents and SettingsUserDesktop" & ws.Name & ".xls"
I = I + 1
Sheets(I).Select
Sheets(I).Move
ActiveWorkbook.SaveAs Filename:= _
ThisFN, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
I have 16 proposals that are either hidden or visible in a proposal generator. I need to be able to copy only the visible worksheets over to a new workbook that uses a name from a cell inside the proposal generator. Then a save as prompt to force the user to save the file wherever they choose.
I have some vba that opens a closed workbook, copies data from a named range and then pastes it to the active workbook.
However, what is happening is that the closed workbook is opened and only part of the data is pasted. What I would prefer to happen is this:
Open the closed workbook-->copy the named range-->paste(append) to next empty cell in column B.
Heres the code that I have got.
Sub Workbook_test()Dim wb As Workbook Application.ScreenUpdating = False ' turn off the screen updating Set wb = Workbooks.Open("G:WAREHOUSEPlanningSmartNew Training Plan raining plan.xls", True, True)
I have a Picture in a workbook kept open. ( workbook 1 )And i have some X workbook open....i want a copy of sheet from workbook 1 To X workbook which is currently active.
Sub display_all_false() With Application .DisplayGridlines = False .DisplayHeadings = False .DisplayOutline = False .DisplayZeros = False .DisplayVerticalScrollBar = False .DisplayWorkbookTabs = False .DisplayFormulaBar = False .DisplayStatusBar = False .ShowWindowsInTaskbar = False .CommandBars("Standard").Visible = False .CommandBars("Formatting").Visible = False .CommandBars("Control Toolbox").Visible = False .CommandBars("Drawing").Visible = False End With End Sub
But, when I run the code, seems there're run-time errors detected at these codes: .DisplayGridlines = False .DisplayHeadings = False .DisplayOutline = False .DisplayZeros = False .DisplayVerticalScrollBar = False .DisplayWorkbookTabs = False
1. Is there any way to correct these codes? 2. Does the bolded codes applied to ActiveWindow (Worksheet) only (eg. With ActiveWindow ...)? Can I change it to ActiveWorkbook (perhaps)? 3. Can the command menus (File Edit View Insert Format ...) be hidden also? 4. Does looping method for each worksheet
I've been using the following code to bring in individual cell values from one closed workbook to an active one. I would like to modify this is possible to bring in multiple cells at once and also pull them into a different worksheet in the active workbook. Basically, my command button is on Sheet1 but I'd like the data to pull into a cell on Sheet2.
Private Sub CommandButton1_Click() With Range("Q9") .Formula = "='C:Users[Workbook Name.xlsm]Worksheet Name'! N27" .Value = .Value End With
I have a number of files in a directory, with data in columns A:E, and variable rows deep (200-300) that I’d like to copy to the active workbook. I’d like to have a file window open to the same set directory (ie. “CArchives” and be able to select any file in that directory to copy.
Note: There are 2 separate ranges to copy, which must be done separately because the headings are to be moved 2 columns over - also, there is data in beteen the headings and main data in the active workbook.
Range 1: Two headings cells in A1:B1 get transposed to C1:D1. Range 2: the files’ data starts at A4 but gets inserted starting at cell A6 of the active workbook.
I'm trying to figure out a way to find a specific sheet in a workbook that does not contain the macro. Within the macro I have a cell which holds the name of the specific sheet I would like to find but I can't get it to work for some reason...
'Dim officen As Integer 'Dim thiswb As Workbook
officen = Range("A2").Value Set thiswb = ActiveWorkbook ' Open the Active Info file Workbooks.Open "C:My DcoumentsActive 20080616.xls", , , , "xxxxxx" ' Dim sourcewb As Workbook Set sourcewb = Workbooks.Open"Active 20080616.xls"
I want to create a standard macro that will copy values from a Master workbook to the current, active workbook I have open. The problem I have run into is when I record a macro it also records the name of the active workbook I'm copying data into and I would like it so when I bring up a workbook I just run the macro and it copies the values in. I'll be doing 8 different macros that each copy different values from the Master spreadsheet
I am trying to transfer a value from the active worksheet in one workbook to another workbook. I keep getting a subscript out of range error on the line that uses activeworksheet command when I run my code.
I have a workbook that is a formatted report that I need to insert data from a name variable "CSV" file. I have created a macro in this workbook that calls an "Open" dialog for CSV files that I can use to browse to and open the source file. The macro then is supposed to "select all" copy and close the workbook then make the original workbook active and paste the data starting at row 2. The macro "seems" to be working perfectly except when I do the open the macro then makes the original workbook active, selects all copies then wants to close the original workbook. How can I tell the macro that the csv file that I just opened should be the active workbook, baring in mind that the name won't be known before the time it's opened so I can't hardcode the "active. workbook (NAME) "route.
I have a workbook containing several worksheets I want to copy to a workbook of their own and save under a specific name/password through a macro.
However, I have five difficulties:
1) I want to new workbook to contain only 1 worksheet. So, only the worksheet copied from the original workbook, and no other worksheets.
2) I want to be able to manually select the destination file for the copied workbook, however. This should be the same file for all workbooks.
3) I want the data copied from original worksheet to be ‘pasted as value’ only, so no formulas in the new workbook.
4) I want the new workbook to be read-only. Therefore I want the workbook to be /locked and password protected. So, the password should be only for altering cells, not for opening the workbook. See also point below.
5) Regarding the naming and passwording part I have made a matrix table in a worksheet named: “Rekeningen” (this worksheet is in the original workbook). This table contains three columns:
Column A, cells 40:65, contains the names of the worksheets I want to copy Column B, cells 40:65, contains the names of the new workbooks Column C, cells 40:65, contains the passwords of the new workbooks
I mannaged to copy ALL the sheets from the ActiveWorkBook to "Book2" with the following code - but as you can see the code copies each of them AFTER the last sheet in "Book2".
Sub Copy_Sheets() ' Copy All sheets from ActiveWorkbook to "Book2.xls" For Each SH In ActiveWorkbook.Sheets SH.Copy After:=Workbooks("Book2").Sheets(Workbooks("Book2").Sheets.Count) Next End Sub
How can I copy them to "BEFORE", lets say Sheet(1) in "Book2" ?
I tried to change the SH.Copy command to somthing that sounds logic to me, such as:
SH.Copy Before:=Workbooks("Book2.xls").Sheets(1)
but got the: "Run-time error '9' - Subscript out of range".
1) I need to add an edit check 2) have a copy of Active Workbook Path stamped onto spreadsheet with date and time to create a visual record of where the file has been saved (described after the code below).
1) I need to verify that two cells (S7 and S9) are not blank before running my code below (=IF(OR(S7<>"",S9<>""),RUN CODE,"You must select your Provider or Division before you can save this document")).
- If both of these cells are blank a message box should notify the user that they must select the provider and/or division before they can continue with the save.
- If one or more of these cells are not blank the code below should run.
Using a Command button into my Master file, I'm looking for a code that give me an option to select an existing file that will have a variable name & path, open it and then copy all worksheets contained within it, into my Master workbook. Then close the selected file on completion.
Not sure if it's important but some of the copied worksheet names will contain copies. e.g. Apples, Apples (2), Pears, Pears (2). etc.
I have developed a macro, run by a button click, in my workbook.
I have about 5 other workbooks to process, what I want to do is to have my workbook with my macro open, then either copy or import these other 5 workbooks, one at a time, into my current workbook so I can run my macro on their data. Not sure if I need to copy them in or not, but thats all I can think of. I'm not even sure how to do this manually, I tried having my workbook open and doing a file - import on the .xls file, but it seems to be translating my data and I'm ending up with a value of 'f1' in one of my columns, no idea what that is. All I really want to accomplish is to run my macro on each of the 5 workbooks, one at a time.
I'm looking for a way that I could place a button on my workbook that would create a new document from the specified worksheets and convert the formulas to the values.
I have different excel files in a specific folder. All the files have only two sheets with same kind of data, formatting etc. Now I want to merge selective files on need basis (only the first sheet data) into a new different worksheet in which I will be running the code. Provide me a macro which will ask me to select the files I want to merge. Also the data range of the files ( needs to be merged) will vary time to time, so the macro needs to take care of that as well.
I have a workbook with 30 some sheets. I would like to have a macro that if i select multiple sheets, will paste the values and formats of those sheets into a new workbook. I would like this to keep the names of the worksheets when transfered to the new workbook.
Thus far, I have been using this code, which does nearly everything i want, but instead of pasting the values, it gives me #VALUE! for nearly all the cells. Most of the cells are using Vlookup and/or Indirect functions to reference other sheets- not sure if this is relevant. The few cells that do paste accurately are either text or simply reference another cell on a different worksheet without a function.
Here's my code.
Sub PasteShtVal() Dim w As Worksheet ActiveWindow.SelectedSheets.Copy For Each w In ActiveWorkbook.Sheets With w.UsedRange .Value = .Value End With Next w End Sub
I have a report(Input report) with multiple sheets with different worksheet names.
Now I have to select 2nd worksheet of input report and copy a certain range values and paste in the other workbook(output) . From the same sheet 3 diffrent values I will copy and paste in other work book.
Now, I have to come back to the input report and go to next sheet and copy the same range data and append to the out put report below the first sheet.
This I need to do for all worksheets for the input report worksheets (there are more than 100 worksheets)
I have a userform which loads the data into a worksheet named "Data" which is being used as a database for an event scheduler. I also load a calendar from a worksheet named "Month" so I need the information from the userform "UForm01" added to 2 worksheets.
The userform adds a series of textboxes to worksheet "Data" in the first open row. I also need certain textboxes from the Userform to be added to another worksheet to populate the calendar.
I have a workbook with many (25) worksheets which all have the same structure, column headings, etc. but vary as to the number of rows. I would like to search all worksheets in workbook and copy to worksheet "120" only those rows where column C is "120" and column E is "1-00053-".
Ideally, input boxes would be used to enter these criteria so that it can be used for different scenarios in which these values will vary.
My problem is as such; each month I receive an application for payment. This will contain around 20-30 worksheets. However I only need to interrogate around 3-4 specific ones. The worksheets I require contain data describing the plant/equipment a company has purchased, or materials purchased over a period of time. Each month the worksheets are updated with the previous months data appended to the bottom. I am required to established if the equipments have been purchased at the correct rate.
The worksheets are all protected thus in order to interrogate them I am required to copy an paste their contents into a new work book in order to format them and insert my new "assessment" columns. I need to keep the work sheets separate in the new work book as they have different layouts however they have the same layout and work sheet names each month.
I needs a macro which would allow me to open up a new book them copy the specific worksheets from a specific file into the new work book. I then have a separate macro which re-formats them into the layout I require.
I found some useful code for copying specific worksheets into a new workbook based on the sheet name, which I have not been able to alter to suit my needs.
I have a workbook that has a Master Sheet that contains a summary of each claim (Name, type of claim, dates, dollar amounts, etc.) and a sheet for each specific claim.
I know I can use the filter feature on the master sheet to view all of the physical damage claims (and one column has a hyperlink to the worksheet for that specific claim). But every month I have to create a report that shows each type of claim, dates, and so on.
I would like to create a macro that can copy the worksheets to a new workbook based on the type of claim it is. I'm thinking something like for each ws in wb if range ("F15") = 1 & .range ("B4") < 30 days from today copy that sheet into a new wb.
Below is a generic and far smaller version of my workbook. The name column contains my hyperlinks to the specific sheet. Each sheet is also named based on the text in the name column (so John Doe's sheet would be named 'John Doe') and so forth.
I want to write a macro that will copy data from all worksheets of a specified workbook and copy them into a new workbook.
To give some detail, I receive a report each morning containing failed deliveries. I also export a list of failed deliveries from a system (SAP). These reports rarely match so I must compare the two daily. I do this using INDEX and MATCH functions but now my boss wants all the data in a single report so I would like to harness the might of vba to consolodate all the data in one workbook.
The lists of failed deliveries are contained in worksheets marked mon, tue, wed... so I need to search all worksheets for all delivery numbers and copy all of the data into a new book. This becomes complicated because on Monday there is only one tab marked mon, on tuesday there are two (mon & tue), one wednesday there are three and so on.
I have started on some code but I am getting nowhere fast. I have managed to muster an input box which asks for a date (this will be used to search the file path for a file named "failed deliveries & "mm/mm/yyy")
I have one sheet for each day of the month with a table that has Employee Name, Reason, and Expected Return. I need to copy each line into the monthly sheet, but each day may have varying number of rows. Needless to say I would like to do this without copying lots of blank lines into my consolidated sheet.
I need to copy all sheets from a workbook to a another workbook (create a copy of the one I am using) and this is the cod I have:
Sub NewReport() Dim Workbook1 As Workbook Dim Workbook2 As Workbook With Application .ScreenUpdating = False .DisplayAlerts = False .EnableEvents = False End With
[code].....
The problem I have is that the output only have the sheet1!