From my userform I use a calendar to input in two text boxes the "from" and the "to" dates and get a "custom" statement of activity by company.
If I input two dates that do not exist within my summary of sales how can I code in order to get an error message AND clear the text boxes. (textbox1&2)
Example: jan 07 to Dec07 do not exist/ Oct 09 does
"from" and the "to" dates = 01/01/2007 to 12/10/2010 would work (and it does)
01/07/2007 to 12/06/2007 does not exist anywhere then I want to see a message box to that effect AND the textboxes cleared for input of the new "from" date in textbox1
If Impossible at least can you help on an error handler? (on error resume does not work or at least I think it does not)
I am currently using Excel 2003 SP2 (Standard Edition)
The company where I work has created several userforms which use the Calendar function within VB and all employees can use this.
I have since created a new set of Userforms (which do not use the calendar function) for an external company. Upon opening the spreadsheet and running the code to launch the Userform they get an error message regarding "Calendar Control".
I have a userform that reads data from a sheet with thousands of records (lines) each record with some 30 cells (columns). I wanted the user to scroll up & down in the sheet, using the keyboard arrows and I wanted the userform to show the relevant record, where the cursor stands. For this purpose I created an event handler (Worksheet_SelectionChange) that identifies the scrolling, populates the form with the relevant record data and then returns the focus back to the sheet. The command I have used to send focus back to the sheet (so the user can keep scrolling) is:
Now comes the bizarre part... This macro can work perfectly for hours and then decide to "die", or can work on one computer but not the other (all with Excel 2007, BTW). When the macro dies (or if it does not work, to begin with), the debugger points to the command I mentioned, with an error message "Run-time error '5' , Invalid procedure all or argument."
how to make my macro "stable" (make it work always and on every computer)?
Unfortunately, I cannot upload the file, because it contains confidential data (and it is not in English...).
VB: Private Sub Worksheet_SelectionChange(ByVal Target As Range) lr = Cells(Rows.Count, 1).End(xlUp).Row If Target.Column < 2 And Target.Row > 1 And Target.Row <= lr Then crow = ActiveCell.Row
I have a piece of code with some error handlers in it but for some reason the error handler can't deal with a second error. The example code below suffers from the same problem in that it falls over when it tries to process the i = "w" line for the second time. If you F8 through the code the error handler works the first time but not the second. Why is this and what can I do to get it to keep going to erH when it hits the i = "w" line?
Sub test() Dim i As Integer testing: On Error GoTo erH i = "w" erH: i = 1 GoTo testing End Sub
I have written a long bit of code, which works fine. I decided to add an error handler just in case of any errors. I have run through my code numerous times to confirm that there is no error, but the msgbox still pops up.
how to improve the following error handling strategy and code samples so as to maximise its usefulness for the purposes described.
During function calculations in VBA, such as is done by numerical integrators, numerical run-time errors may occur, such as: Err.Number = 5 Invalid procedure call eg. LOG(-5) Err.Number = 6 Overflow Err.Number = 11 Division by zero
My present strategy to address these errors:
Say the variable x is used in the function calculations, and some particular value of x causes one of the above errors to occur. After the above errors are trapped, the x value is increased slightly from its initial value, and the failed calculation line is retried (Resume). On the next error trap, the x value is decreased slightly from its initial value, and the calculation tried again. This way, the initial x value is cyclically changed by adding increasing magnitude increments of alternating signs, searching for the nearest x value which will allow the function calculation to be done without error. Thus it causes the x value to swing around the initial x value in a pendulum-like manner, but with a widening swing per pass.
So far, I have the following code:
Code:
ErrorHandler: If Err.Number = 5 Or Err.Number = 6 Or Err.Number = 11 Then If Initial = True Then
Before doing some modifications in a data sheet, I first check with the below code whether a certain list is complete or not using the VLOOKUP function. If I encounter a missing value in the list, a userform appears asking to fill out 3 data fields, which are then added to the original list to complete it. All of this works fine if only one line is missing; if there are two (or more) lines missing, all goes well untill the VLOOKUP function errors out on the second line missing. I can't find out why everythign goes welll with the first missing line, but not with the second missing line.
Sub proCheckVesselCodes() Sheets("Sheet4").Select Range("K1").Value = "Check" Set varRange1 = Range("A1") fctCountNrRows varRow1 = varRow varRow2 = 2
I can not seem to find a good example of code for a try and catch error handler out on the web for something I am working on. Here is the code I am working with:
I am writing a macro to track stats in a workbook. The workbook has the check every tab in the given workbook, hidden and unhidden. In order to track the stats I find a column labeled "Read Dates" on each worksheet. The "Read Dates" column is not always in the same location so I have the macro Find the words "Read Dates". To make sure the cell the macro finds is the column label and not just another cell where someone may have used the words "Read Dates", I have an 'If/Then' statement checking the column to the left to ensure "Rev Mo" is there. If the state is true, the macro begins tracking stats. If the statement is false it attempts to find the next cell containing "Read Dates".
My problem occurs when the macro selects a sheet that contains no data or does not have the words "Read Dates". To help remedy this, I have an Errhandler that simply tells the macro to move onto the next worksheet. My problem is that there are several worksheets that do not have a cell with the value of "Read Date" so the second time the ErrHandler errors. Below is the section of the code I currently have an issue with.
Sub Begin_tracking()
'Error Handler On Error Goto ErrHandler
WCount = Worksheets.Count For i = 1 To WCount If Worksheets(WCount - i + 1).Visible Then Worksheets(WCount - i + 1).Select
Can anyone think of a better way of doing this so the entire workbook is worked or tell me how I can reset the Error Handler is it will move onto the next worksheet? I've looked into help on this forum to rest the ErrHandler but what I've found and tried has not worked. The ErrHandler may be invoked 2 times or it may be invoked 20 times depending on the workbook.
For some reason I thought this would be simple, but not as simple as I thought. I have a UserForm that enters data into a sheet, but before it is entered, the user is prompted for the sheet password (sheet is protected). What I tried to do is use an error handler to exit the sub if the password is incorrect, user hits Cancel, etc. Here is the code I am using:
What I'm wondering is when it is a good idea to use Error Handler's. I've got maybe 50 procedures in the project I'm working on. Some of the procedures are merely parent procedures calling other procedures. Since other people will be using this workbook, I want there to be a way to troubleshoot if errors occur, but it almost seems bad form to have an Error Handler for EVERY single procedure. Conversely, somehow, someone always finds a new and creative way to error out my workbook, and they don't understand the code and/or are not VBA literate. I can always fix afterwards, but solving the problem immediately over the phone is not ideal. I'm very new to debugging for other users. The workbook is currently in constant development/improvement used by only a handfull of users, but eventually it will need to be at some decent release stage, where the VBA code will be password protected, and I will not want the user getting into the code.
I am looking for a more efficient way to write a macro (a sample from the macro is below). This is just the first part of the macro. I need to repeat these same steps (seen for row 5 below) for rows 5 to 50. My script worked until I hit row 35 and then I got the "compile error.." message. There must be a way to use "loop" to write this more efficiently, no?
I have been using the workbook with the calendar form for ages, but now when i click on the date field to invoke the calender it come out with the comple error:Variable not defined. Here is the piece of code
Private Sub UserForm_Initialize() If IsDate(ActiveCell.Value) Then Calendar1.Value = DateValue(ActiveCell.Value) Else Calendar1.Value = Date End If End Sub
I'm using MSCal.OCX to have a user select a date from a calendar in a user form. It all works fine on my machine and the machines of my colleagues. All of these are running XP Pro with Office Pro, Excel version 11.8120.8122. All have SP2 installed. The problem comes when the customer tries to use it on their machine. They are running XP Pro with Office for Small Businesses, version 11.6560.6568.
I have done a search through Google and I have made sure he has the most up to date version of MSCal (11.0.6650.0) and registered it, using regsvr32 mscal.ocx. I've even made sure he has unregistered and deleted any previous versions. The error message he is getting reads: "Compile Error in Hidden Module: Module 4". This comes up when the calendar is supposed to appear. I have also tried getting the user to register the control in Control Toolbar -> More Controls -> Register Custom Controls but they still get the same error.
For some reason my form won't open when the workbook is opened. I get an error message "run time error '424' object required" (which happens when I have Form1.show in the BOTH workbook_open event and the userform_initialize event (oops)). When I removed form1.show from the userform_initialize I don't get an error but I also get no form. I recall having this issue before but I can't recall how to fix it.
Can I call the userform_initialize event from the workbook open event to get around this successfully and properly?
I do hit the SCE (Shift-CTRL-Enter) keys. The formula does work in one workbook, but not the other. The only difference between the two workbooks is this formula has a larger range.
New Formula- doesn't work (ERROR- #DIV/0!) {=AVERAGE(IF(Sheet1!A3:A1094="MONDAY",Sheet1!E3:E1094))}
Old Formula- works {=AVERAGE(IF(B6:B451="MONDAY",E6:E451))}
I get spreadsheets sent to me with hours and minutes in decimal format. Frequently a quarter of an hour or three quarters of an hour are posted as 0.15 or 0.45 instead of 0.25 and 0.75. Other odd fractions can also appear.
I want an error message if the value when divisible by 0.25 is not a whole number.
I wanted to make a pop up alert message appear whenever the formula in a cell gives a particular output.
Before posting this i tried looking for similar posts before, but the ones found do not solve my problem. There it asks me to write the following code in VBA,
Private Sub Worksheet_Change(ByVal Target As Range) Dim MyRange As String
MyRange = "A1"
If Me.Range(MyRange).Value = "Have Meeting" Then MsgBox "Have Meeting" End If End Sub
But my doing so, I can not use any formula in the cell A1 or any other cell i give reference as MyRange. I will always have to physically type "Have Meeting" or any other word assigned in the above.
I am writing some code to do a comparison between two cells X2 or AB2 with an X which checks to: 1. make sure one of the two are filled, or 2. both are not filled. Below is an extract of the spreadsheet I am working on. I need to check to make sure one of the boxes is checked. If both are empty or both filled with an ("X"), I want a message box to tell me to correct the error and stop the macro from continuing. If only one is marked with an ("X"), I want the macro to continue but don't know how.
I am receiving an #Value! error message from my sumproduct formula: =SUMPRODUCT((Data!$A$2:$A$47=G$2)*(Data!$B$2:$B$47=G$4)*(Data!$A$1:$N$1=$B21)*(Data!$A$2:$N$47))
As follows: Data!$A$2:$A$47 is a date G$2 is a date within the context
Data!$B$2:$B$47 is a unit number G$4 is a unit number within the context
Data!$A$1:$N$1 are descriptive titles $B21 is a decriptive string within the same context (copy paste)
Data!$A$2:$N$47 are to be summed is all criteria are met.
I have a vba code that I wrote out to search for a file and update data on a spreadsheet with the new file... however I've come to a point where I'm not sure of what code to use. If I search for a file that is not there I get a runtime error and of course it ask me to end or debug. What I would like for it to do instead is search for the file and if it is not there... display a message box stating that the file searched for is not found and automatically closes the workbook after OK is pressed.
I've got the below code which I use to log users who opens my spreadsheet. It's a Event so runs when the spreadsheet is open with macro enabled. The spreadsheet is on a shared drive which has the prefix "K". Most users it works find but one user gets a error Message "Path or Drive" error. I got around it by adding "on error" but how do you overcome issues with drive prefixs and the drive address e.g "K" vs "\CRD2000"
Private Sub Workbook_Open() Open ThisWorkbook.Path & "usage.log" For Append As #1 Print #1, Application.UserName, Now Close #1 End Sub
I have developed a program in which the user will only see the userforms (and to an certain extent not even be aware of excel doing most of the work).
i am looking for code that will intercept an error message should something go wrong in my vb code. Currently when an error occurs, it pops back to VB and gives the error message. I want it to rather give a popoup message asking the user to contact me.