Attached is an example of the program. The purpose of this program is to allow someone with very little knowledge about the information to enter data. The first tab labeled "Instructions" is will have two macros assigned to the buttons at the bottom of the page. The first macro labeled "Move Data" will move data will clear data in the shaded cell on the "Entry Form" sheet and fill those cells in with '----. The second macro labeled "Generate and Save" will save a master copy of the program, save a historical copy of the program by date, and print/save a pdf copy of the "Reports" sheet.
Each one of the historical (the last 8 sheets of the program) sheet receives data from the "Entry Form" and then moves the data by date into the table for archiving purposes.
If you look at the code for the "Entry Form". I have a couple of subs. The first being Worksheet_change. the first section of this code is to force certain cells to be uppercase. This part of the code is working fine. The second part of the code is the Dim MyValues. This part is working fine also, but...
My issue is... When I run the move data macro from the "Instructions" sheet the Dim MyValues reads these as changes to the cells and wants to push the data to the historical sheets.
What I would like is an IF Statement above the Dim MyValues part of this code that stops the Dim MyValue part of the code running if those values are blank, 0, or have '---- entered into them.
I have the following code to add dash mark to TextBox1 value depending on some condtions (mentioned in the code), the code works perfectly, but when we use Backspace Key to clear some charactors it is conflicting with the code running when changing Textbox1 value.
I have a file that shows a rolling screen and updates information every 30 mins. I want to be able to stop the screensaver from activating while this file is open.
I have found this code on the forum that does this, how do I call this function from another module? ...
I've got a worksheet_selectionchange macro on a sheet, and another macro that you can run after it. The issue is that when the second macro runs, it also runs the selectionchange macro, and wipes some of the info that the second macro should be copying.
Is there a piece of code that I can use in the second macro to block the selectionchance code from running until it's compelte?
Hi, I am runnning this marquee label function in a userform (Dash). When I close the form, using 'unload frmDash' the function is still running in the background. Can someone give me a tip on how to end it at the same time as the form is closed?
I have a spreadsheet containing a macro to automatically sum values from week to week and display the max/min and average. This is almost fully working. The problem I have is the macro copies the sum formula down the page and doesn't stop at the last row. It always adds one or two extra rows. The formula should stop at row 77 however this does not happen and therefore the sum keeps going. Which in turn, distorts the max/min figures.
I have a large macro called SplitData, which takes a load of data and splits it and reformats it each month.
I have 4 Activex Control combo boxes on one sheet that are linked to a range...this range changes each month, so I blank out the range and then repopulate.
My problem is that when I blank out the range, it triggers the Private Sub ComboBox1_Change() and throws some errors because there is no data to select.
So, I was wondering if there is something I can set in my SpltData macro that will not run the ComboBox1_Change sub while the SplitData macro is running?
I have a vba function linked to conditional formatting that i want to temporarily stop while a sub to insert a line is running as the sub stops when it hits the sheet where the vba function operates. When i disable the vba function (or remove the vba function) the sub works fine, if the vba function is not disabled the sub stops.
My users log on with unique PIN numbers for example 1234. I have a worksheet that has approximately 10 different VBA codes. What I would like is the ability at the start of the code to say if the current users pin is not in a hidden range then exit the code. If not run it. Is this possible?
I currently have a userform that runs a bunch of code for me. There are a lot of listboxes on the userform that have rowsources of various dynamic named ranges. I'm running into a problem when I have the used click the "Remove Item" button from the userform. Normally it is supposed to go back to the sourcerow and remove all of the cells that contain values that are selected in the listbox.
The code for removing the cells works just fine, however when it deletes a cell, for some reason the code executes a private sub that is in a different sheet. I can't figure out why and it's messing up my macro.
Here's the
FROM USERFORM:
Private Sub cmdAIRemove_Click()
For i = 0 To lbAISummary.ListCount - 1 If lbAISummary.Selected(i) = True Then For Each cItem In Worksheets("Lists").Range("YourAI") If lbAISummary.List(i) = cItem.Value Then cItem.Delete (xlUp) '<- right after this line it jumps to NWSMonth_Change i = i - 1 End If Next cItem End If Next i End sub...
I've created a macro that runs for about 3 seconds. While the macro runs, the active worksheet display jumps around because of the various cell references being addressed in the macro.
Is there a way to stop the jumping around? How can a simple "Progress" screen be displayed while the macro is running?
I have a couple of functions running in my workbook, and for no reason that I can see, when one of them runs during a simple macro I use to show/hide some columns, the worksheet vanishes. Is there a way to stop all functions running while I show/hide columns?
I am using a macro that automatically updates data obtained through a DDE link at 5 second intervals. My code is based off of the article "Automatically Run Macros at a Set Time or Date" found on the Ozgrid FAQs found here: http://www.ozgrid.com/Excel/run-macro-on-time.htm
However, I have this macro execute when I activate a Form Button, not when the workbook opens. So far, this macro works perfectly, and I have no problems. Although, I'd also like to include a Form button to STOP the macro from automatically running if the user chose to do so. How exactly would I go about making this STOP button?
I'm opening a workbook and then running the macro in the workbook. The problem is I would like to build a "timeout" feature if the macro is running too long (as some of the macro's this will run can take days to complete) but I don't know how to run the macro asynchronously. Also I need to know if i can get it to run asynchronous is there an event that will tell me when the process is finished. The calling application of the macro is written in VB6 and opening excel workbooks to run the macros out of. also the "timeout" feature must be done from the VB6 application it cannot be edited into the the workbooks containing the macro.
This formula is being used in a vacation time spreadsheet. So after each paycheck the if statement is applied and need to calculate the accumulation for that week based on if the person has worked 5 yrs or less. I need to stop the today's date calculation in the if statement after it is used. So that each time the spreadsheet is opened the values are a fixed number not changed based on the current date. However if the if statement is pasted into the next pay week it will calculate based on the actual date.
It is calculating is the following:
C4 = 5yrs Anniversary Date of Hire 3.08= less than 5 yrs 4.62= more than 5 yrs
I am dealing with several very large spreadsheets using VBA to do various things. I found that my code worked well, but was taking a long time to run. The biggest time consumer was my use of the AutoFilter features. I have since turned calculations to manual before my code runs and set it back to auto when my code is done running. What are the potential consequences of my turning calculations to manual and then back to auto?
Creating a formula that basically has a big IF statement. I hope this makes sense, so here goes. I am looking to find the "age" or "elapsed days" of an ID from when they created an account to when they stopped. This might be very complex and if there's not a way to calculate the Elapsed days (even though that's what I prefer), perhaps there is some formula that can return a value like a "1" or "True" or something that lets me know the statement is true.
original formula from post 3261273 {=IF(D2>0,A2-INDEX(A$2:D$16,MATCH(B2&"1",B$2:B$16&C$2:C$16,0),1),"")}
New formulas needed or revised from the above:
Formula 1: If the ID in column 2 are the same, and if there is a value in column 3 (Create) and a value in Column 4 (Suspend) AND there is no value in Column 5 (Stopped), then subtract the dates in column 1 for Create and Suspend. My manual calculation result is in the column called "Elapsed Days (Create to Suspend but NO Stopped)
Formula 2: If the ID in column 2 are the same, and if there is a value in column 3 (Create) and a value in Column 4 (Suspend) AND there is no value in Column 5 (Stopped) OR Column 6 (Unsuspend), then subtract the dates in column 1 for Create and Suspend. My manual calculation result is in the column called "Elapsed Days (Suspend Only, No stopped or Unsuspend)"
Formula 3: The ID in column 2 does not have to be the same, but if there is a value in column 3 only (Create) and there is no value in the Suspend, Stopped, or Unsuspend columns, then place a "1" in the cell. My manual calc is the "Create Only" column.
Event Date ID CREATE Suspend STOPPED Unsuspend Elapsed Days (Create to Suspend but NO Stopped) Elapsed Days (Suspend Only, No stopped or Unsuspend)
I use a code in ThisWorkbook to always open on sheet 1 when opening up the excel spreadsheet.Is there a code that I could put in to ThisWorkbook that would do a check that the workbook was e.g. "WorkbookA". If it wasn't then the start up code would be cancelled/ignored.The reason for this is that I am copying this workbook whenthe user has entered details in to it and so I do not want this code to run in the saved workbook, that will have a different name.
I have the below code (pieced together and donated by other users on the forum)
Application.Calculation = xlCalculationManual ' Application.DisplayAlerts = False Application.ScreenUpdating = False Dim Ctr As Long 'set ctr for Invoice Dim wsData, wsInv As Worksheet Dim Ibk, Rbk As Workbook
Set Ibk = Workbooks("Invoice.xls") 'Invoice as Ibk Set wsInv = Workbooks("Invoice.xls").Sheets("Invoice") Workbooks.Open Filename:="\cmc-dc01usersdcMy DocumentsProjectsRemake GoodyearRentCharge.xls" Set Rbk = Workbooks("RentCharge.xls") Set wsData = Workbooks("RentCharge.xls").Sheets("Sheet1") With wsData........
I have written a code but i can not make it stop where i want it to stop. I would like the code stop when cells(31,4).value reaches 0. Pls refer to attached sheet for a clear example.
The code is as follows
Sub production2() If Cells(35, 4).Value > 0 Then Cells(31, 4).Value = Cells(35, 4).Value For j = 5 To 16 If Cells(36, j).Value < Cells(29, 4).Value Then If Cells(31, 4).Value > Cells(29, 4).Value Then Cells(37, j).Value = Cells(29, 4).Value If Cells(36, j).Value < Cells(29, 4).Value Then Cells(37, j).Value = Cells(29, 4).Value Cells(31, 4).Value = Cells(31, 4).Value - Cells(37, j).Value Next j End If End Sub
Trying to get my code to loop for one minute. Have tried this code (after searching through a few threads):
Sub LoopUsingTime() x = 1 EndTime = Now + TimeValue("00:01:00") For lCount = Now() To EndTime Sheet1. Cells(x, 1) = "the time is now " & Now() Sleep 5000 x = x + 1 Next lCount MsgBox ("loop finished") End Sub
This is bizarre - over the last year or so, on two machines (one Win98SE/Off2K, the other Win2KSP4/Off2K3), very occasionally a change I've made to Excel/VBA code has been ignored (eg to add a MSGBOX call) - even after I've restarted Excel. The workaround is to add a blank line and remove it again in the actual code module, but its both annoying and intriguing,
The code that I'm using is supposedly not allow spreadsheet to be opened after a certain date, or does not allow a user to press any of the command buttons and comes up with a message saying the spreadsheet is closed for new entries.But is not working for me.
I have created a few macros and once I was happy that they worked independently I joined them to run as one macro in several steps. I have just discovered a bug ...
The macro filters on a column and copies and pastes that range into another sheet.
HOwever, sometimes (as I have just discovered) when it filters, there will be no data against the value it is looking for.
I need to say, if no value, move to next step.
I.e. here's my code. It's looking for ASIA and it will copy and paste all rows with Asia to another page. It then does the same for EMEA. Thing is, in my example just now, there was no EMEA data and some times there may be no ASIA data so I need to build in some rules that if it does not find either of these it continues to finish macro or pops up and says 'NO ASIA found, CLick to continue' or something?
I have the following code that gets stuck in the Loop and will not stop unless I press the Esc key:
Sub WIP() Dim ws1 As Worksheet, ws2 As Worksheet Dim lastrow As Long Dim newRow As Long Set ws1 = Sheets("PAYCALC") Set ws2 = Sheets("WIP")
Application.ScreenUpdating = False With ws2 .Range("A2:C" & .Range("A2:C2").End(xlDown).Row).Clear End With
x = 10 lastrow = ws1.Range("C5").End(xlUp) Do newRow = ws2.Cells(65536, 1).End(xlUp).Offset(1, 0).Row ws2.Cells(newRow, 1) = ws1.Cells(x, 2).Offset(-2, 0).Value ws2.Cells(newRow, 2) = ws1.Cells(x, 2).Value ws2.Cells(newRow, 3) = ws1.Cells(x, 2).Offset(3, 0).Value x = x + 21 Loop Until x >= lastrow
There's a twist to this. I have the same identiclecode in a different module. The only difference is ws2 is different and there are 7 newRow's. Other then that the two are the same.
That one works just fine without getting stuck. It will go through 200+ sets of records and stop when it reaches the last one.
The one above will not stop even though I just put in three records on ws1 for testing.