i use a worksheet.change() sub in the vba of the worksheet itself, not a new module.
I want to check that when a certain value is deleted, the user really wants to do this (and attach a routine to this to delete the entire row, shift etc). so far piece of cake, but where the .... can i find the previous value of the cell in case the user decides he made a mistake. the standard VBA sub creates a target as range, but there doesn't seem to be a target.value.previous, or something to that effect, or for that matter something like a worksheet.beforechange() sub
how to find and restore a value which has been deleted in excel in the worksheet using VBA?
see attached file. Need to find latest non blank value - in attached file it is highlighted in yellow. From there, want to summarise 26 weeks back so, in the attached file:
Row 2 would be finding 750 and summarised back 26 weeks from 30 sep 2012 Row 3 would be finding 2250 and summarised back 26 weeks from 2 dec 2012 Row 4 would be finding 5000 and summarised back 26 weeks from 4 nov 2012
is there a way for a udf to return the cell's original value instead of an error.
ie. the UDF in the cell returned a value from a database. now if i move the database and reopen this sheet, excel will try to recalculate and if it doesn't find the database it will return an error. instead of that i just want excel to return whatever was in the cell, before it had to be recalculated.
I have an excel document which I am trying to automate using VBA. I have two headings which have the same text every month but the month value must change.
Basically I’m looking for the last day of the previous month. So if it was 05th April 2007 I want to return 28 March 2007. I just need to obtain the last day of the previous month in the following format ’28 March 2007’.
I need to paste Entire row in one sheet( Sheet1) to the previous row in other sheet(Sheet2) ex: If i copy 3rd row from one sheet(sheet1) than it must be copied to 2nd row in other sheet(sheet2)
Sub try() Sheets("Sheet1").Select Range("b2").EntireRow.Copy Sheets("Sheet2").Select Range("b2").EntireRow.Previous.Select ActiveSheet.Paste End Sub
I have built a compiled a workbook which figures out the daily business in my club, Staff Rota, business done, wage slips, and everything else I need. Well, everything except the stock element.
I need the current week to look up the previous weeks stock levels on each item, when the previous weeks workbook changes it's name every week. At present I name the sheets by the week ending date, i.e. 12-04-14.
I've got a workbook that increments in sheets for each new week. I have a cell showing the current week number for that sheet ( lets say cell C1) and any formulas that need to reference data from the previous sheet do in 'indirect' function which basically looks at the current week number ( lets say week 20)in cell C1 and minus's 1 to navigate to the previous week (week 19).
I was wondering if there was a way to reference the previous sheet purely by the order they're in.
So say i have 5 sheets named "1,4,5,8,9" and these represent week numbers so the sheet named '8' in cell C1 would have '8' standanding for the week number but cells that wanted to reference the previous sheet couldn't do the 'indirect' C1-1 as there is no 'week 7'.
The weeks used could vary alot so a formula to reference the directly previous sheet is needed.
the '$A$G2-1' part is the bit that redirects to the previous sheet based on it's name, what i think i really need is to replace this part with a 'PrevSheet' function but i'm unsure how.
I want to move to the next row but i don't want to make another format just when i begin to write in the next row the format appear automatically like previous row ?
Note : format include formulas ,borders and colors every thing in previous row ...
If I erroneously saved over an excel document that is stored on an external drive, is there any way to restore the previous saved document, or am I screwed.
The thumb drive is plugged into a computer that gets backed up onto a network server, but I assume that the external thumb drive is not backed up with the c drive and r drive on the server.
Sheet summary2 has the table. And I am looking to compare and add the data (from all sheets Date 1 to Date31) . I am looking to add those values (yes as 1) in my summary 2 sheet for the range E3 to H14 ...if it mathces as MF8330 or x543 or c5045 or x940.
In Excel VBA, is there a way to get the beginning date and the last date for the previous month from TODAY()?
i.e. If TODAY is Jan 3, 2014, then I would like to have the beginning date as Dec 1, 2013 and the end date as Dec 31, 2013. i.e. If TODAY is Mar 18, 2012, then I would like to have the beginning date as Feb 1, 2012 and the end date as Feb 29, 2012 (yes 29, not 28).
So basically, I need to have the AI to know the beginning of the year (January 2014 - takes Dec 2013) and if it happens to be February, the 'end date' is either 28th or 29th depending on the year.
I have a report that is run everyday showing a list of orders, on separate tabs based on facility code, that has all kinds of information. I want to be able to take today's file, and have it lookup any comments I posted on the previous day's file.
I've been messing with code all morning and can't get it right. I think my problem is the vlookup part, and I don't think my loop is right either. Here's a little bit of the code i'm trying:
I've found on this newsgroup a function to get the previous sheet name
Function PrevSheet() On Error GoTo EndFunction Application.Volatile True PrevSheet = Application.Caller.Worksheet.Previous.Name Exit Function EndFunction: With Application.Caller.Parent.Parent.Worksheets PrevSheet = .Item(.Count).Name End With End Function
when i put =PrevSheet() i get the previous sheets name
What i want to be able to do is use this in place of directly referencing the sheet name in my code as follows... =IF(G4-J4<0,G4-J4,G4-J4)+'Week 1'!H4 So i want to be able to replace Week 1 with PrevSheet but i've tried and falied on this. eg...
=IF(G4-J4<0,G4-J4,G4-J4)+PrevSheet()!H4 Could someone show me the correct syntax for this.
I would like to have a "PREVIOUS" navigation button in a workbook that goes back to the previously activated worksheet, which may or may not be physically the previous worksheet in the workbook. In other words, if I go from Sheet #1, to Sheet #3, to Sheet #5, I'd like to return to Sheet #3 from Sheet #5 (rather then navigating back to Sheet #4).
"Open VB editor and double click 'Thisworkbook' and paste this code in on the right:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) lastsheet = Sh.Name End Sub
Then right click 'ThisWorkbook' and insert module and paste this code in
Public lastsheet As String Sub Select_Last() Sheets(lastsheet).Select End Sub
Whenever a user changes sheets, the name of the last sheet is now held in the variable 'Lastsheet' so if you assign a shortcut or button to the code then the last used sheet will be selected."
My problem is that when I want to assign the macro, I can't find macro name that looks anything like the above in the drop down list of Macro Names. how to assign the macro to a button?
With "edit directly in cell" turned off, if you double click through in a cell containing a formula to the cell being refferenced, is there a quick way of getting back to the original cell you clicked on?
I have a DDE-based worksheet, that is obtaining data from Townsend Analytics' RealTick Server software. One of my cells is a DDE formula that retrieves the current BID ask price, for a given stock.
When a new BID price comes in to my designated cell, I need to somehow capture the existing BID price, before this new one updates in the requisite cell. I want to be able to store this "old" value in another cell.
Unfortunately, there is no "pre-cell" event trapping. I've tried to work with the worksheet_change event, which passes an argument of the effected cells, but the cell value has already changed, by the time this event has been called.
This problem sounds simple, but I am at a loss for a solution. Does anybody out there in EXCEL-land have a solution ?
I have a folder containing excel files with dynamic suffix names. I have files for all days starting from the 1st of the month – for example : Performance_01012010.xls, Performance 02012010.xls, Performance_03012010.xls till Performance_31012010.xls.
I want a VBA code to retrieve the date out and change it automatically (means it should add 1 automatically to the previous date). For example, if I open Performance_05012010.xls, my macro should SAVE AS this file to Performance_06012010.xls.
its a simple spreadsheet that suppose to track a usage of items that were taken out of inventory, but at the same it needs to be printer friendly (that's what's causing all the problems),
it got messy when I had to carry over from previous row, I had to manually enter under "Quantity ch." in order to have correct amount under "Left" column, (see row #4)
I think I can eliminate whole "Carried over" column if I create a formula that will enter data into B4 only if J3 has a number, I also need to copy the same formula's down each column,
I am analysing data to determine buy or sell transaction signals. The problem is that the method can and does produce frequent signals that are merely confirmation rather than new information.
Therefore, I need to select a signal, eg a "buy" signal where the previous transaction signal was the opposite, eg a "sell" signal.
In the attached sheet N10 is a valid signal as the previous signal was a "sell" signal. However, N14 is not valid as the previous signal was also a "buy" signal.
Currently, I am using a simple formulae to determine the signals, e.g. =IF(J26>0,J26,0). Hoevever, I need to modify this by looking back to confirm that a value >0 occurred first in column K rather than column J. If the value >0 occurred first in column J then I need to ignore the buy signal.
I am not sure if the formulae can be modified or if a macro is needed.
I am working on a project where all columns but Column A are locked. The user selects a row of data by selecting the one unlocked cell in that row. This gives him access to modifying the contents and position of that row via a UserForm. My question is: Is there a way to copy the row of data to another sheet automatically when the user changes his selection? In this environment, a change of selection means that the user is done with one row of data and initiating work on another row. What I am trying to accomplish is a procedure invoked by the Worksheet_SelectionChange event that references the cell that has just been de-selected.
Below is a macro I'm trying to create. The basically it's supposed to be a quick simple macro to save lots of time. I want to select current tab, move/copy (create copy) to the end....then select the tab I've just copied and copy paste special the values (then rename the tab to todays date) FYI the tab I'm copying is called rebuy shipping.
However, I want to then do the same at a later date with the most recent tab, but with the below code it always selects and copies the original tab:
Below is the code I currently have implemented. The first line of code creates a .csv file. The third line of code opens that file. I couldn't put the third line right after the first because it would try to open the file before it was finished being created. Hence, the second line which waits for 5 seconds. Is there a way, either in the CMD or VBA, that I can have it wait until the first line of code has completed?
VB: Shell "cmd.exe /c M:" & "&& cd DesktopExcel Project" & Command Application.Wait Time + TimeSerial(0, 0, 5) Workbooks.Open("M:DesktopExcel ProjectInfo.csv")
The basis of my needs is to be able to find in a list of names, a duplicate name from previous list and then grab and populate a number from that row. Here is an example
A B C D Doe,Jane $1000 $250 $750 Smith,John $700 $100 $600 Wilson,Alan $1500 $1500 $0
I update the list, some names are added and others taken away. When I add the new list, column C of every name is $0. I want the formula to find names from the previous list and populate Column C with the value of Column C + D of the corresponding name. Also I have a separate formula that simply is D=(B-C) The result of what I would want this to look like is this...
A B C D Doe,Jane $1200 $1000 $200 Doe,John $500 $0 $500 Smith,John $1000 $700 $300
As you can see there was a new name added to the list (Doe,John) and a name taken away from the list (Wilson,Alan). Column C is the only Column that I am wanting to auto populate. The Value in Column B is a variable that is managed by another program so you don't have to worry about that.
Keep in mind there will be multiple instances of this list and the same name will occur more than once in the spreadsheet. There are not duplicate names that are different customers though as my other program takes care of that. eg. "Doe,John" and "Doe,John #2". I only want it to grab the information from the previous list not ones previous to that list(if that makes sense) third example...
A B C D Doe,Jane $1500 $1200 $300 Doe,John $500 $500 $0 Miller,Joe $700 $0 $700 Smith, John $1300 $1000 $300
My current method of accomplishing this is to select the previous list and print it. I then go down the new list and cross reference it with the old one keying in the values by hand. This would be a huge time saver as the list is 250 names and growing. I hope I have given enough information but undoubtedly I have not. So feel free to ask me any questions and for more details. I did not want to go to in depth for fear of my post being to long.
I have a sheet that shows employee absences, I require a formula that will look to see if a friday and a monday are populated and auto-populate the saturday and sunday to match the run, if the only the monday is populated then the saturday and sunday need to stay blank, if only the friday is populated then I also need the saturday and sunday to stay blank.
I have attached a sheet with the current display and the desired outcome.