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'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'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 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 want a macro in one worksheet to run when any cell (in a given range)on a different worksheet (dataentry) is updated. I have spent along time trying to make it work with no avail. The code I use to start my macro is as follows.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count <> 1 Then Exit Sub
If Target(1, 1).Address = "dataentry!H5:IV72" Then If Not Intersect(Target(1, 1), Range("dataentry!H5:IV72")) Is Nothing Then
On Error Resume Next Application.EnableEvents = False
In cell A1, I have the month number (eg, 1, 2, 3,). The month number reflects current month and will automatically change with every month. For example, right now its 6, next month it will automatically change to 7. Each two columns in Range A10:X20 represents the data from January to December. I want to use a worksheet event to change the background of the current month two columns in the range to yellow color and the two columns in the range will be visible when I activate this sheet.
I care about is the line starting wks4.Cells(Di, 2) = I am trying to sum data from a variable length column in worksheet 3 and place the result in column 4 However, when I hit enter after entering the formula into =SUM() I get
Expected: list separator or )
[code] Sub Macro1() Dim wks3 As Worksheet Dim wks4 As Worksheet Set wks3 = Worksheets("Sheet3")
Currently my Macro should: Turn off any filtersNumber column A from 1 to 1000 (starting in A14)Drags formula from K14-O14 down to last row of data shown in column Athen puts cursor in last empty cell in column B ready for user to enter data
On point 3 - I want the range to be K14-O14 if active worksheet equals "EXCHANGES" but if its on the "VALUATIONS" tab the autofill range should be L14-P14
I have found bits and pieces of macros on the internet and put them together so if my macro below is not the most effective for my needs but here it is in it's current state:
Here is my macro:
Sub AddNewEntry() 'TURNS OFF FILTER IF FINDS ONE ON Dim wks As Worksheet
code to take jobs that are done on one spreadsheet and send them to the next available row of a specified range on another worksheet. I am also looking to incorporate a way to delete the empty rows that are left behind.
I have already made code to select the completed jobs, but am still unsure how to approach the next part. I can't even paste the selected range to another sheet without errors from range sizes.
The following code is done up to the point where I cut my selection.
Sub Update() Worksheets("OpenGen").Activate Dim c As Object Dim rngA As Range
I am receiving a 'subscript out of range' error on the lines of code below.
I would note that all variables are declared and all seem meaningful as regards what you would expect at that point.
Below is a snippet from the immediate window which indicates what the values are: completecashname C:CashDevelopmentMyFolderoutputCASH042706.xls cashsheetname Formatted Sheet cashcurrcolumn A cashfirstrow 2 cashlastrow 876
Also the workbooks are both closed at this point (but it makes no difference)
Set CashCopy = Workbooks(CompleteCashName).Sheets(CashSheetName). _ Range(CashCurrColumn & Cashfirstrow & ":K" & Cashlastrow).Value Set PelPaste = Workbooks(completepelname).Sheets(PELSheetName). _ Range((PELCurrColumn & PELlastrow)).Value
I have a code that copy a template and rename based on a range in a sheet call master.
However, I want to update it such that when new names excluding empty cells are included in the range, automatically searches all the worksheets and the create a new template and rename based the cell value.
I want an easy way for users to cross- reference a range in another worksheet. The specific range referenced will be dependant on the value in the currently selected cell in column B. I have tried using BeforeDoubleClick but the event does not seem to fire and the double-click simply goes to edit the double-clicked cell. Code below.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) '*** '*** Reveal Chorus Mapping '*** Dim PracticeStr As String Cancel = True 'Prevent going into Edit Mode If Target.Column = 2 Then 'get value in cell PracticeStr = Replace(ActiveCell.Value, " ", "") 'take user to range with that name Application.Goto Reference:=PracticeStr Else Exit Sub End If End Sub
I have two worksheets to track students registering for one day workshops, which are offered monthly. In my first worksheet called 'CourseCapacity' I track the number of students that can register for each workshop. It looks something like this:
Col A - "Title" Workshop101 Workshop102 Workshop103
Col B - "Capacity" 5 10 7
My second worksheet tracks the current number of students registered for each workshop for each month. What I want to do is read the course capacity from the first worksheet and display it for the monthly offering of each workshop.
Col A - "Title" Workshop101 - 1/23/2010 Workshop101 - 2/20/2010......................
I am using the below code which works perfectly in same sheet. But instead of range a1 and b1 in the same sheet (bold one), i want to use range a1 and b1 of sheet2. Range "Nazim" is named range in sheet1. And this code will be put in sheet1.
Ok then, I can do this with record macro and it works ok, but im sure theres a nice way to get VBA to do this quicker and make it work for every row.
Story is - I have a spreadhset - which will have data in rows as normal. Each row when completed will have a button which when clicked - creates a new worksheet by copying one already there, then populates this new worksheet with the data from the first worksheet.
Dont ask why I am not allowed to use MS Access for this as its a bit of a long story.
This is what the record macro VBA shows - this works ok as I said but obviously takes a good few seconds and jumps around etc until its competed.
I have the following line of VBA code that sums a range of cells on the active worksheet. I need to change that to sum on a specified worksheet. Is there a way to do that? I thought it would be simple, but have had no luck... Actually using variables for the cells, but simplified here for example's sake.
If Application.WorksheetFunction.Sum(Range(Cells(2, 2), Cells(123, 2))) = 0
I created an array from data on one sheet...then when using the array (in a loop) on a different active sheet, half the values in the array are lost. However, if I run the code and keep the focus on the sheet with the array data, it works. I can't understand why.
If i run this while sheet1 is the active sheet, it works fine - all 15 values (15 in each dimension) are there. If I click on any other sheet and then run the code, only 7 values are in the array (7 in each dimension).
1. Add new worksheet (say ws2) 2. Activate the worksheet ws2 3. Copy a predefined range from already open workbook (say ws1) 4. Select the target cell in ws2 through user prompt by using mouse or keyboard 5. Paste the copied range from ws1 at this location of ws2
I am facing problem in selecting the cell in ws2 as ws1 always remain in foreground.
Sub CreateNewWorkBook(RValue As String) Dim wbA As Workbook Dim wbB As Workbook Dim sTemp As String Dim rRange As Range Set wbA = ThisWorkbook wsName = ActiveSheet.Name Set wbB = Workbooks.Add WorkBookName1 = wbA.Name WorkBookName2 = wbB.Name......................
I would like a Macro that can copy values from 5 rows in a worksheet, starting from Row 1. Each "Batch" copied to a new worksheet should contain values from 5 rows, so first batch would be from Row 1 - Row 5 β copied to Sheet 1 , then Row 6 - Row 10 β copied to Sheet 2 , then Row 11 - Row 15 β copied to Sheet 3 ...... etc. This should be done until there are no values in the last row.
So, the workbook would start off with only one worksheet, which could be named "source" for convenience and end up with many more sheets depending on how many rows are in the source worksheet, which can vary from time to time. There are 3 other "contraints/conditions that need to be considered 1. the number of columns in the "source worksheet may vary from 5 columns up to 30 columns. 2. The formatting that was applied to the values in the "source" worksheet need to be maintained. 3. The data posted should start in cell A1 for each new sheet.