I can now open a file and copy two sheets but need to close the second file...
In wkb "C*commissions database.xls" I have this code which directs the user to open the current month's commissions. And with it open I can copy two sheets (always named the same). but now I need to close the current month's workbook, so I can continue working with the data in my permenant workbook.
I have a fairly elaborate close-down routine for my workbook.
1) Quit out of fullscreen (restore initial state of excel before saving) 2) Hide all sheets but one (enforces cant do anything unless macros enabled) 3) Automatically save without a prompt 4) Close the workbook
I've researched it well and implemented it to the point where it works, but only if the user clicks the excel application close button -- the "X" in the titlebar (hence not in fullscreen).
However, if I launch the process via a userform button click, then for some reason the DisplayFullscreen = False, Sheets hiding, and save codes have no effect (fullscreen persists, sheets are not hidden, no file is saved) in the Workbook_BeforeClose() subroutine....
I repeat: all the above works fine if process was launched by "native" excel button, but does not have any effect if launched from a userform commandbutton. (?!?!) any ideas what's going on?
I'm including my code so you can get an idea how it's structured.... by it's pretty "by the forum" as far as I can tell...
Private Sub CloseButton_Click() If(1) Then 'Method 1 - close directly from userform command button With ThisWorkbook '.RunAutoMacros (xlAutoClose) .Close End With Else 'Method 2 - set a timer to call a function to perform ' "ThisWorkbook.close" in a function outside of the userform CustMenuCloseTimer = Now + TimeSerial(0, 0, 2) Application .OnTime CustMenuCloseTimer, "CustMenu_CloseAction" End If
I'd like to copy a range of cells from an open workbook to a closed workbook, but only once the open workbook is closed by the user.
I have found info on copying from an open workbook to a closed one, but can't seem to find anything similar to an 'onClose()' function for workbooks.
How can I manage this?
I use a UserForm to fill-in rows with data one at a time (the form needs to be reInitialized for each row entry). So, would it be better to just copy all rows within the range each time the Form itself closes (by coding the copy/paste in my "Submit" button)?
I figure this might be a possible work-around if an onClose() function doesn't exist for workbooks. However, I would prefer that function, so as not to clutter my userForm code.
How can I copy whole sheet (only value and format) in other close workbook next to used sheet if it is in the same folder (folder can be in Desktop in C or D)
I've got a kind of "menu" sheet that will pull up various reports from Excel spreadsheets. Rather than having the user work with the live data, the menu opens the file and saves it as a copy, closing the original. This is working fine.
The tweak I want to add is, since the user is looking at a copy rather than the live data, I don't want them to save when closing. Is it possible to programatically add a bit of code to the new copy to handle this?
Here's a sample of one of the menu button's code:
Code:
Private Sub CommandButton18_Click() Dim wb As Workbook Set wb = Workbooks.Open(Filename:="J:Z PII OvensRack Repair TrackingRack Repair List.xlsx") With wb.Worksheets("Sheet1") .Unprotect Password:="pass" ActiveWorkbook.Worksheets("Sheet1").Copy End With
I have 77 excel workbooks that are created each week, they are all in the same directory. I have to open each one and copy the data into a single workbook. The file names change slightly each week.
example: DIST_91124_GROWTH_PRODUCT XXX _07072006.xls The 07072006 is the week ending date and will change. Each of the 77 files has a different DIST_number.
Is there a way to automate this process, it takes me about 4 hours to do it manually.
I have a sheet that users fill out and there is a macro on that sheet to copy the info to another workbook, save and close.
for some reason, the date, which originates from a cell with the value "=Today()", and when pasted in to the new book, it is pasted values.
the issue is, every so often, the date will say 09/26/10 and continue to do so for quite a few entries.
i have tried almost everything. I checked the dates on the computers, and all are fine. i even went through it step by step, and when the data pasted it, it was 09/26/10.
It’s been working perfectly up until around an hour ago. However, now when I close Excel, I get compile errors.
These compile errors seem to be because Excel is trying to access controls in the workbook after it has closed. Since the workbook is closed, VBA can no longer ‘see’ the controls, and therefore it thows up errors.
I’m also getting a similar error on a Worksheets("DataExplorer").unprotect line, which seems to be because the worksheet isn’t there after closing.
These errors only occur when I close the whole excel application using the big cross in the top right. If I just close the workbook (using the smaller cross just below the big cross in the top right of excel), it doesn’t throw up these errors.
Just to clarify: all of the code runs perfectly when Excel is open. The errors are being thrown up for lines of code which run without problem until Excel is closed.
I would like to use VBA to search a folder and copy data from tabs within the excel files there. The data will be pasted to a tab of same name in the the main file. All the files are in the same format.
So far I have only managed to list the files in the folder using code I found on your site!
I have a workbook that updates from external source and creates sheets depending on a cell range.
I have put tab 1 and tab 0 on either end of where the new sheets will be inputted, will never know how many sheets
What i need to happen is if someone fills in "complete" in A7 in my "summary" sheet then the values in row 6 in all the other sheets get hardcoded. This needs to happen from A7 down to A26, so A8 = complete then copy row 7 etc This is what i have so far
I get compile error here ........Sheets(ArrSh(1)).Activate
Also need it to work for all the other rows.
Sub hardcode() ' 'Sheets("Summary"). Select If Range("a7") = "complete" Then ' Sheets(Array("1", "0")).Select Sheets(ArrSh(1)).Activate
I found several examples on google, but unfortunatly it conflicts with another macro I use for forceing users to enable macros (hide all sheets except one if macros are disabled).
The attached file is an example contaning the save&close code and the show/hide sheets depending on macros enabled.
If the file is opened with macros disabled then only one sheet will be visible. If the file is opened with macros enabled other sheets are visible.
The problem if that this code uses a custom save, witch makes the save&close not save... (in module1 and in ThisWorkbook)
The pourpose of the save&close is to make sure some users don't forget the excel open and thus block access to it. So if a certain idele time passes excel has to save and close without any confirmation messages.
I have a workbook with 26 sheets, labelled A to Z. Column A in all the sheets have names from rows A6:A35.
I need a macro or a code to extract all the names from each of the 26 sheets and paste it to a new sheet 'Names' under column A, such that names starting with 'B' paste under all the names 'A' and so forth till 'Z'.
I have copied and then pasted & linked numerous cells from one sheet to another within the same workbook. When I copy the 2 sheets (Edit>Move or Copy Sheet>Create Copy) the linked cells on the duplicates remain linked to the original sheet. How can I copy the 2 sheets and have the cells on the copied sheet be linked to the copied sheets and not the original?
I need to know the command to close a workbook. I have used the information found here: http://www.ozgrid.com/VBA/userform-close.htm to disable closing the workbook via the upper right "X", but I need a button that, when clicked, simply closes the workbook instead.
I'm very new to vba and I'm trying to copy a sheet called "Data" several times and I want each new copy to take it's name from a list of names which I have in a sheet called "Names". The code below seems to work fine, but the problem that I’m facing is that if I run the macro again and a sheet name already exists then I get an error massage. So I want to modify the code below, so that before creating each new copy, it checks for the name to be given to that new copy, and if the sheet exists then skip creating that copy and goes to the next one.
(The "Names" sheet contains the list of names, with the first name is in cell A1, second name in A2, A3,....)
I have data in Sheet1 of the Excel sheet. I want to copy the content of Column C & D of Sheet1 into Sheet2 using a macro.
I am able to do using below logic (But i think there is a simple logic): Get the Last record count of Col C For i=1 to Last sheet2.columns(r,c)=sheet1.columns(i,3) Next i
Since I am using for loop, it takes long time if the data is huge. Could you please let me know whether my approach is good or there exists a simpler method.
Before I explain my problem, I should let you all know that I posted this same question on another forum, and this is the link to that forum (which it hasn't had an answer yet) Link: http://www.excelforum.com/showthread.php?t=642781
I will describe my problem now as clear as possible. I'm making a Task list with assignments for each of my team members. Columns A & B describes the ID number of the task, Column C describes the Task itself, Columns D to J are hidden, Column K describes the author of the task. Column L is the one that have the name (or names) of the person who is in charge of doing that task. What I need to do is to create a macro that searches the name of that person in Column L and once it finds it it will create another sheet with the name of that person. And add to that sheet the entire row of his task.
I've got a file with 75 sheets. Each sheet consists of a fairly elaborate header (logo, other design elements, etc.) and columns of data. I'd like to remove each sheet from this "master" file and copy it to its own file. But when I do this, the formatting is all screwed up- the logo and designs are distorted. I tried to adjust the row width and column height to fix it, but it doesn't come out the same (plus it takes forever). Is there a fast and easy way to copy each sheet onto its own file sheet?
I use the command ActiveWindow.SelectedSheets.Copy to copy selected sheets into a new workbook. As a result of this line is a new workbook created and a the selected sheets are pasted into the new workbook. Is it possible to paste only values by using a single line like this?
Copying data from one sheet and pasting it in different sheets with names.
For example : i have data which has details of all GL account and i want to segregate the data GL code wise into different sheets in the same file with the gl code name.
When I copy data from a source that needs to go into different sheets on a different workbook it works great as long as the destination is sheet 1 or sheet 2. See my code below and I'll explain further.
There is data in a workbook that is on row 45,columns G thru K. This data changes and determines which sheet in another workbook it needs to be copied to. If the destination is sheet 1 or sheet 2 the code above works great,but if sheet 3,sheet 4 or others it fails. The code in all instances is identical with the exception the destination sheet numbers change.
I have a workbook with a number of worksheets. (say they are called A, B, C, D). Each sheet is exactly the same.
what i would like to do is look down column A in each sheet in turn and where there is a "y", it will copy the entire row of information (say A to J) to my "master" sheet. i want it only to copy (not delete) the information, but then enter a "y" in row A for all the columns it has copied.
(thereby meaning the next time i run it, it will not copy those rows again.)
ActiveWindow.ActivateNext there are 2 sheets I don't know the names of 2 sheet because each time when I received email they got different names each time so i am not able to define specified named in my codes and next when it is being copied in data sheet it must be checked that if these sheets already there then delete them and copy new one.
Is there a way to copy all sheets in a workbook ( with macro ) where you do not have the sheet names / variable names.? I am opening a sales workbook from a master workbook and need to copy all sheets to the master however the tab names and sheet numbers are variable and cant seem to find the correct way to do this.