Code Reuse - Logging Actions When A Cell Changes -2
May 2, 2009
I have made an class and created a file to log when user change value or insert formula in a sheet get recorded in a file C:Logme.csv. The problem is it is recording the value and formula at random i.e in some instances it records the value and in some instances it is not recording the value and formula in logme.csv . I am unable to figure out why this is happening?
I have written a macro which references to several different sheets and cells therein. The macro is assigned to a command button on 'Sheet 1'. When I click the command button, the screen flickers and the user can see the macro running all the commands I have written. Is there a way of stopping this - maybe replacing it with a static screen view whilst the macro runs?
I am currently using a product formula in a cell and was wondering if I could add a round up/down action to numbers containing decimals? For example, let's say that my cell values are 300, 327.6 and 355.2 after using the product formula. Is it possible for those values to reflect 300, 328 and 355, respectively?
I wish to perform different actions depending on whether certain errors are present in a cell and I can't figure out how to do it.
Attempt (within some For loop):
othCell = ActiveCell.Offset(-95 - counter, 0) If othCell = CVErr(xlErrNum) Then conditioncount = 0
This generates a "type mismatch" error. I also tried othCell.value in place of othCell on the second line; I don't really follow the distinction in usage for "value". I've also attempted this with Error 2036 in place of CVErr(xlErrNum). I don't know much at all about VBA!
I am using a shell command to communicate with a device under test and would like to open this shell once, change directory to a specific one and then send different text strings to it at various times during my test program. The code below works perfectly fine but opens and closed the shell each time it is used. I think it woud be quicker if I could reuse it until done and then exit out of it.
Here are 2 examples of a couple different strings I would like to pass into the cmdShell function at various times. I would like to send the first string, perform some measurements and then repeat with the 2nd string.
i.e. shellStr1 = ("cd .. & cd c:ezspi & testdm900 --widn 0x1020 --widv 0x1") then once the shell is open and the directory has been set send shellStr = ("testdm900 --widn 0x1020 --widv 0x5")
Is this possible using WShell Script or do I need another method?
Public Sub cmdShell(shellStr As String) Dim Test As Double Dim response As VbMsgBoxResult Dim cmdObject As Object Dim ReferenceTime As Double, ElapsedTime As Double
I'm trying to automate some webscraping on a website that requires a login, and was wondering how I would do so using Macros with a specific username password somewhere in the spreadsheet, lets say B2, and C2 respectively. The website I'm trying to login is this; http://underground.chacha.com/account/. I think I have most of the scraping figured out; its just the log-in for now.
I keep a spreadsheet with the 50 or so wireless phones in our "lab". When someone checks them out, the rules are that they change the cell under Available to "NO" and add their user ID. When they return the device, they change the Available cell back to "YES". What I want is a log of who checked out the device, and when... which would be kept in "sheet 2".
I attached a small spreadsheet with the same columns and information you would see in the regular spread sheet. Sorry, I would rather have put it here, but I couldn't figure out how to do that.
The spreadsheet has code which updates the "Counter" when someone checks out a device. Many thanks to the "Rocket Scientist" who helped me with that.
i have a spreadsheet with the following range in a worksheet called "Data". The range is A3:CH9 where column A contains the data label and row 3contains a label for each month. So the data itself is in B4:CH9
Is it possible to set a macro that logs any changes to the data in the range B4:CH9 and log that change in another worksheet (eg: "Log"). It would say who made the change (based on the USERNAME), what cell was changed, when it was changed and what the value was changed from and to.
I'd like to log live update data continuously,i.e. as the data in the cell changes. The problem I'm facing is that the data comes in at uneven intervals-- ranging from 30 to 50 ticks per second. So I can't really use a timer function. I need to use some function which saves the data as the cell value changes. So, for example, if cell A1 gets updated continuously, cell B1 could save the first value of A1 and then cell B2 could save the second value of cell A1-- and so forth.
I am doing an excel survey using forms. I want to restrict users from completing the survey more than once. i am using below code to input user login details in to a spreadsheet but i am not sure how to restrict them. I want a msgbox or some sort and then it closes the excel active workbook.
code to get username: Sub GetName Dim r As Range Set r = Sheets("UserNames").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
r.Value = Environ("username") r.Offset(0, 1).Value = Date r.Offset(0, 2).Value = Time
After looking through various forums i found code to highlight duplicates but not sure how this can be modified to suit my need.
I need a macro that records users accessing a workbook over a network and if I have not logged in after a 30 day period it will replace all calculations with data and if possible wipe all macros. I have tried to nut this out but time is against me.
I have had my work taken to other sites within our business and passed of as their work, and it bugs me.
Unfortuantely, I do not have a list of divers names for referencing. I am using these for testing purposes:
Column B Diver's Names: B. Dodson, L. Lloyd, D. Burch, C. Haley, J. Wilson, B.Dodson, B. Dodson Columns M through BO (types of dives): will have "X's" in them if a specific type of dive was made, Scientific, Working, Training, Non-duty... Shore, Boat, Ice, Cave, etc..
I need to know how many Divers made the type of dives. For example, if I make three dives in Saltwater, L. Lloyd makes one, and D. Burch make one, the answer needs to show 3 which is correct. If Dodson makes one, Haley makes one, and Wilson makes one, the number is 2 (actually 2.33). It works in some cases and not in others.
I have a list of petroleum accumulations with three types of data: Reservoir depth, Net Pay and Gas-oil ratio. for each accumulation, the number of reservoirs within each can vary. So I may have a accumulation with only one set of those stats, or an accumulation with 20.
I need the program to go down an alphabetized list (8000 entries long) and after every unique accumulation name average the values of the stats(which are in three separate columns) then put it in one row perhaps beginning in Column M or another sheet. So that I have a list of accumulations with the average of those stats, one entry per accumulation name.
I am working on trying to make a macro I wrote run faster, and I understand that one way to do this is to stop certain actions from occurring. However, I am having a hard time understanding what stops what, specifically among these:
This Coding is correct for CheckBox49. This code Changes the Color of one Cell from Black to white and the cell below it from white to black...(its a dipswitch) when the check box is checked... When its unchecked it does the opposite....
Code: ' ACM 1 Switch 1 Private Sub CheckBox49_Click() If CheckBox49.Value = True Then Range("AC24").Select With Selection.Interior .Pattern = xlSolid [Code] ........
Now what needs to happen is this.... I'd Like to have this Happen if checkx49 is checked...
Code: Range("A1,K50,K51,R50,R51").Select Range("R51").Activate With Selection.Interior .Pattern = xlSolid
If Checkbox49 is unchecked do this... Put in D26 Reader Name? in Italics.
Code: Range("K50,K51,R50,R51").Select Range("R51").Activate With Selection.Interior .Pattern = xlNone
Also...what ever information is entered in D23. Put that in F50 with RDR at the end... Whats in D23 Put in F51 Whats in D23 Put in M50 and concatenate with a space from cell U49 Whats in D23 Put in M51 and concatenate with a space from cell Y49
Lastly code to select K50, K51, R50, and R51...=Len whats in F50, F51, M50, and M51 when the box is checked...and dont len when the box is unchecked.
Is there a structure inside of Excel which keeps track of all the actions taken by a user (something that would presumably be used to allow for an undo sequence)? If so, is there a way to get access to it?
I have a series of macros altering various workbooks and sheets. They're numbered Step1, Step2, etc. In my Step5 I have a series of Case statements in a macro, and I don't know how to get it to do what I want next. I have NOT tried running this code yet, and I'm sure I have something(s) wrong in it.
1) If the selection in DstWbk, sheet "Steps", is "01DSP" through "11DSP" the macro needs to delete specific columns in the SrcWbk, and then move to the next step (6).
2) If the selection in DstWbk, sheet "Steps", is "*DSP" the macro needs to go directly to the next step (6)
3) If the selection in DstWbk, sheet "Steps", is anything else the macro needs to flash a generic "No Data found" message and move on to Step7.
The part of the code that's throwing me begins at 'Select only the specific regional data' and ends at the "Case Else MsgBox"
I'm using a Private Sub Worksheet_Change(ByVal target As Range) macro on Worksheets(2) to perform certain actions when a selection from Worksheets(1) is pasted to Worksheets(2). Before ending the Worksheet_Change sub I'd like it to deselect the copied selection on Worksheets(1). I've tried to do this by selecting Worksheets(1) and moving the cursor, but VB ignores the "With Application.Worksheets(1)" instruction. Removing "Private" from the sub heading makes no difference.
Is it possible do this with a Worksheet_Change routine? If so, how?
Macro: the system monitors changes to the spreadsheet and then performs actions accordingly. Example: If the value of column c = Bug, then it sets the value of G to Celeste and Column H to Kewill.
Could this macro be changed so that instead of having to enter "Celeste" in this code, it could set the value of column G to the value found in H5 on the sheet?
I tried replacing "Celeste" in the code with H5 but it did not work.
Private Sub Worksheet_Change(ByVal Target As Range) 'Declare variable Dim iCol As Integer 'Look at the column number of the changed cell (Target) Select Case Target.Column 'Column C Case 3 Select Case Target.Value 'if "Bug" set iCol to 3 (Red)and change value of column G to "Celeste" and Column H to "Kewill" Case "Bug": iCol = 3 Target.Offset(, 4).Value = H5 Target.Offset(, 5).Value = "KWL"................
where exactly to add the code under Tools > Macro > VB editor.
My version: Office XP Pro ("2002")
The first code I need should be simple. I want Excel to copy cut delete files from the hardware, using data from a workbook.
There are 3 sheets: 1. "Names" - contains picture file names (without the JPG extence) in one column, 2. "From" - contains a cell with the original path to copycutdelete from 3. "Target" - has a cell with the target folder path (in case of copying/moving).
I made it in 3 sheets for making it user-friendly, since unskilled users will use the method.
I need to have 3 hyperlinks in the first sheet: "Move (cut)", "Copy", and "Delete", and by pressing the matching VB code eill be activated.
The second code should output (and print, if possible) data from a line to a pre-defind sheet.
Let's say there are 4 columns: picture file name, name of photographer, description of the photo, and the date it was taken. There will be in the end of every line a cell with a hyperlink called "Output photo details" to output the data to specfic cells in the Print sheet (e.g. the date goes to D7, the name goes to A3, etc.). An important thing I wanna output is the picture itself (like from "Add > Picture" ment, in a location I define in the code.
I have a workbook that is used to track overtime hours worked through the year. I've received some help from users on this forum, and others, to create the necessary macros and formulas to allow a supervisor to make use of the form; however, the workbook is also used to track those that wish to volunteer to work overtime each weekend. The sheet has a list of names for the employees on each shift, then a column to allow a "Y" to be placed under the date - designating them as a volunteer for any overtime available. I've found this spreadsheet (attached - from this site) that will allow individual users to access the workbook and have unique passwords for each. I don't completely understand how it works, but I feel it may be a start to getting what I want.
Essentially, once the user selects their name and inputs their password, I'd like the workbook to be opened and then allow them to only manipulate the row associated with their name. That row will change from week to week, so specific numbers will not be able to be used, but their name will be the same as the name used in the logon.
I feel like I'm asking for a lot here, so just some initial guidance on whether this type of thing is possible would be an acceptable answer.
I am trying to determine how to get the code below to fire whenever cell J10 is populated and do nothing when cell J10 is not populated but I can't quite get it. (Cell J10 is manually changed and is not changed based off of a formula)