I searched this site and found the code below to check if a worksheet to be updated is already open. It works fine (gets the desired message) if the workbook is open, but if not open I get "Run-time Error 9, Subscript out of range". I've played with it for a couple hours,
VB: Dim wBook As Workbook 'Check that Summary worksheet is available for update. Set wBook = Workbooks("CommittedSummary.xls") If wBook Is Nothing Then 'Not open 'Do nothing Else 'It is open i = MsgBox("The 'CommittedSummary.xls' workbook is already in use and cannot be updated. Please try again when the workbook Is available", _ vbCritical, "Committed Request Edit") Goto EndUpdate End If
Problem: I want a macro to detect if a workbook is open so I can skip the workbook and move onto the next item. I do not want the user to be prompted in any way. I do not want the workbook to be shared. I simply want to pass over the workbook (but be aware I have passed it over).
--Long Version-- About forty team members have their own workbooks and at day’s end the team leader uses a macro to poll each team member’s workbook in turn to gather work results. When gathering these results the macro also needs to write some admin data to each workbook.
I am aware of the workbook sharing option in Excel, but I am wary of using it. It is not a show stopper if a team member’s workbook is already open and work is not gathered on a particular day – we’ll get it the next day. I just need to be able to trap the event and manage it. The central command I use to access a team member’s workbook is :
I have a simple bit of code that fires some code when it detects a change in cell $P$5 but it doesnt work and I cannot understand why - can anyone assist with this one? I am very green but keen:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$p$5" Then Range("D9:D81"). AutoFilter Field:=1, Criteria1:="<>" End If End Sub
Is it possible to detect when a auto-filter selection has been made ? Is that when an autofilter hides rows, the activecell could become hidden, which potentially may cause errant data entry, not knowing what cell is receiving entry as it is hidden from view.
if the worksheet contains a change event that autosizes the target row, it unhides the filtered hidden row in the process. I could say if target is hidden ignore autosize, but i would prefer to activate a visible cell (first visible cell for filtered column) on selection of autofilter.
I need to know weather it is possible to change the "Password protected workbook" box upon file open with a custom user form. I know you can because you can change and disable the "Save As" box etc. I dont mind using the code with a certificate to open the workbook but id prefer not to...
I'm going to be using a spreadsheet to keep track of where different people are at. So if Person 1 is in Room 3, I will stick a 3 in the box next to their name and then can look at the spreadsheet whenever I need and see what room they are in. When I'm deciding what room to put a person in, though, I need to be able to quickly glance at a list of Room #'s and see what one's are still available. So I have a bank of Room #'s in the spreadsheet....1,2,3, etc.
What I'd like, is some way to set this up so that when I put, for example, "3" in the cell next to "Person 1" the spreadsheet automatically removes "3" from the bank of available Room #'s and when I delete the "3" because the person has left, it adds "3" back to the bank of available Rooms.
How can I make excel go to full screen (Alt-W-E) as soon as a workbook is opened and then revert back to normal view when it is closed? I already have this code in my workbook_open event just in case that will affect the answer:
HTML Code: Private Sub Workbook_Open() If Not LockSheet(ThisWorkbook.ActiveSheet) Then Exit Sub
I have a formula that uses the OFFSET function so that subsequent row adds will automatically adjust the formulas. For example, cell A1 contains the value 1 and cell A2 contains the formula:
=offset(A2,-1,0) + 1
When I insert a row above row 2, the formula above adjusts to reference cell A3, which is what I want.
What I am running into is that when the workbook is opened, something in the workbook changes, causing the "Do you want to save the changes..." popup to appear even though all I do is immediately close the workbook.
I have traced the problem to my use of the OFFSET function, as when I change the formula to
=A2-1
and repeat the scenario, the workbook closes without the "save" popup.
Does the OFFSET function cause something to change (no cell values appear to have changed) and is there a way to get around this?
let's say combobox1 has a list of: apple (KG) apple (PKT) apple (BAG) orange (KG) Orange (PKT) Orange (BAG)
and a command button.
Can I make it in a way that when command button detects (kg) in combox1, the caption of commandButton will change to "KG"? if detect (BAG) combobox1, then commandButton is "Bag"?
I need to detect when changes are made to a TextBox (Manual changes). In VB 'TextChanged' fulfills that function but there is no equivalent in VBA.
I also need to differentiate between adding a value to a TextBox which has a vbnull value (Does not need to trigger event) and editing or replacing the current TextBox value (Trigger an event).
What am I missing here? I followed http://www.fontstuff.com/vba/vbatut07.htm and I have this code but nothing happens when I click on 'M6'.
Private Sub Calendar1_Click() ActiveCell.Value = Calendar1.Value Unload Me End Sub
Private Sub cmdClose_Click() Unload Me End Sub
Private Sub UserForm_Initialize() If IsDate(ActiveCell.Value) Then Calendar1.Value = DateValue(ActiveCell.Value) Else Calendar1.Value = Date...............
I have Excel 2002. If I start the program it opens with a blank workbook, called "Book 1".
If I then open an existing workbook, I have two Excel buttons in the Windows taskbar: the one I just opened, and the blank one titled Book 1.
At work I have Excel 2003. The blank "Book 1" is also there when I start the program, but if I then open an existing workbook, the Book 1 goes away. I like this way better.
My question is: Is this just the way versions 2002 vs. 2003 work, or can I change a setting somewhere to make Excel 2002 close its default blank workbook when I open an existing one?
I have a workbook with a few worksheets. In sheet1 I have a few ranges which are linked to different parts in the other excel sheets.
Is there anyway to check if a range is being used as a link in another sheet.
Eg.
In sheet1 , A1 i have a value Apple.
In sheet2, A1 I have linked it to sheet1 A1.
is it possible to detect the link in sheet2 A1 from Sheet1 A1? I tried using Trace dependents but all it shows me is the link symbol? An arrow with a small excel sheet.
Is there a way to tell (using VBA in the workbook open event) whether a user has opened a particular file by double clicking on the file icon or by using the Open Command in Excel ?
I have created a spreadsheet some time ago and have been asked to improve on it but I'm rusty with VBA.
I have an automated ordering system that saves each sent order as the date e.g "05-04-2013.xls" but the management team want a graph with the data for the last 4 weeks compared. I have created a seperate workbook called "consumables report.xls" which has a column with the products listed followed by columns "Quantity" and "cost" which is repeated for the 4 weeks of the month.
I want to add a button to prompt the user to choose the saved order e.g "05-04-2013.xls" (all orders saved in same directory) to copy and paste the quantity and cost columns (c8,D69) into "consumables report.xls". I got this to work earlier but it would only paste the formulas and not the values. So I need
A prompt to open workbook Copy range (c8,d69) Close work sheet Paste special .value (c8,D69)
I dont care if it has to open the workbook to copy the data as this will only be used once a month so it dosnt matter how slow the code is.
I just loaded 2007, and among the things driving me nuts is I can't figure out how to change the color of highlighted cells that I have selected. The default color is so close to the normal background color(White) that it is difficult for me to distinguish between selected cells and unselected cells.
I've tried the built in help but couldn't seem to search for the right phrase to bring up a relevant answer. I've had the same problem when trying google and Microsoft's office 2007 help site. I also searched the forum before posting and came up blank.
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 have a dynamic drop down list using OFFSET and want to change a selection of cell colors based on the drop down selection. My drop down list is located in cell G4 and the cells I want to change are
I've set up code where when a cell within a specified range of cells is selected, a macro will run. This works all well and good except for when a whole row, column or range containing the defined cells is selected, there is a run time error. There is no situation where I want multiple cells selected to run the macro, so I only want to run the macro when only a single cell within that range is selected.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("GoToRange")) Is Nothing Then Application.Run "'Macro Test Current MY PFEP Metrics.xls'!PFEP_Filter" End If
If Not Intersect(Target, Range("GoToRange2")) Is Nothing Then Application.Run "'Macro Test Current MY PFEP Metrics.xls'!PFEP_Filter" End If End Sub
Sheet 2. A1: Drop down datavalidation list selected from A3, sheet 1.
On sheet 2, a user can select from the list. If a user changes the value in A2, sheet 1, I want the value that is associated and already selected in A1, sheet 2 to automatically update. There is a 1 to many relationship with the concat and the drop down. In that, sheet 2 can have multiple rows with the same value from sheet 1 A3. Is there a way when A3 sheet 1 changes, to search in A:A in sheet two and update the values for those records that match the original value in A3, sheet 1?
I have Monthly sales sheets that import my cash register data into them. I wanted to set them up to do everything without being there. So I have my task manager open excel at 9:30pm everyday and it runs the macro to import the data into the correct day of the month. Here is the workbook
open macro-
Private Sub Workbook_Open() Dim dTime As Date dTime = Time If dTime >= TimeValue("9:30 PM") And _ dTime < TimeValue("9:40 PM") Then ImportData End If End Sub
This is in my July spreadsheet only. So is there a way to make it know which month spreadsheet to open on the 1st of the month? So come August 1st it will automatically open the August workbook and input the data for the first day? By using the date?
I have a workbook with various "in cell" validation selection boxes.
All worked well, but now the width of de dropdownbox is very big, stretching over several cells. The cell width is 70 pixels, but the dropdown box is 500 width.
I tried new validation, but no matter where I place a validation of what list I use in validation the width of the dropdown is always over 500 pixels? How to change that?
Private Sub Worksheet_SelectionChange(ByVal Target As Range) col = ActiveCell.Column Range("output") = ActiveCell.Offset(0, -(col - 4)).Value End Sub
In case it's not obvious, the macro places the value in the active row and 4th column of the worksheet into the range "output". The problem is, the worksheet is large and somewhat slow to recalculate. This macro forces a recalc on any selection change, but i only need it to run when the row selection changes, not the column. I'm sure there's a straightforward way to reprogram this.
I would like to create a macro (in a destination spreadsheet) which will open up a (source) spreadsheet. The file path and spreadsheet name will be manually entered into cell A1 (on the destination spreadsheet) so the macro would need to refer to this cell to find the correct source spreadsheet to open.
I would then like to attach this code to a command button so that the action above is executed when the button is pressed.
How can I get a cell to show one value when it is selected and return to it's original value when it's no longer the active cell. The cell has a number in it, when it's selected, I use the "selectionChange" event to replace the active cell's value with a number on sheet 2. (The original value is copied to a new location before it is replaced). When the cell is no longer the active cell, I want the original value to be pasted back into the cell. How can I do that? This is what I have so far:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Attached is book in which, when a choice is selected from Drop Down list in ColumnF the macro has to do the need.
When the macro was written it was working well. But when I tried to change it as a Worksheet_SelectionChange event nothing is happenning even though a choice is selected from drop down list.
I have a presentation that I open from a short-cut. After the "Welcome Page" is opened, I want to open a second workbook in a new instance of Excel after 4 seconds.
I think that I can open the new instance of excel, but I don't know how to activate the macro after 4 seconds.
I'm sure there is a function someplace for this that can be used in a macro.
Then, after the second Workbook is opened, I want the Welcome Page "Workbook" closed, leaving the second Worbook open.
Ok, so I have some code that currently opens workbooks via directly calling them in the code via the normal open command. These workbooks belong to individual employees and this method works fine until a new person needs to be added to the process. I currently have to go into the code and add that person's workbook to the code.
Is there a way to instead pull a list of workbooks from say range D1 through D20 and open all workbooks that are listed in this range?