I’m developing an application that will be distributed amongst several clients all running different versions of Excel.
I am trying to employ Late Binding, but am runing into an issue with some string functions (like Mid, Right and UCase) and am getting a ‘Can’t find project or library’ error.
These functions work as expected in a blank project.
I have some code that run on Excel 2003, and fail on Excel 2000. It happens on functions Left, Right, Mid and Trim. I've found that I must use in "Late Bindings". If exist any convertion for above functions?
Is there a way to attach the VBA references on opening the workbook. The users of my workbook can be both excel 2003 users and excel 2010 users.
I want my macro, when you open this specific workbook. Check the Application version and if the version is 2003, than attch Microsoft ActiveX Data Objects xx Library and Microsoft ActiveX Data Objects (Multi-dimensional) xx Library and if 2010 than Microsoft ActiveX Data Objects xx Library and Microsoft ActiveX Data Objects (Multi-dimensional) xx Library.Where xx is relevant version no. for each 2003 and 2006.
I want to late coming and early going of employees. eg. office incoming time is 9 am and 5 mints late coming is allowed 9.05am . and outgoing time is 6pm i am not able to calculate late coming if outgoing is 5.30pm and if put formula =IF(E3>=6,0,6-E3) not working properly.
All i want is to give solution for this time in and out.how to deduct late minutes to the salary of staff.
Date IN OUT Thu 4/3/20149:1418:39 Sat 4/5/20149:0117:56 Sun 4/6/20148:5817:58 Mon 4/7/20149:1217:50 Tue 4/8/20149:1618:00 Wed 4/9/20149:0216:06 Thu 4/10/20149:1017:54
I have a very large spreadsheet with the following columns: WO# (number field); Start date (date format MM/DD/YYYY); Frequency (text); and craft (number). I am trying to have code that checks the frequency and if is "Monthly" or "Weekly" it just goes on to the next row; if it is "Annual", it adds 163 to the start date (start date needs to changed to a numeric field); if it is "Semi-annual", it adds 82 to the start date; if it is "Quarterly", it adds 45 to the start date; and so on, there about 20m different frequencies. After it adds the above value to the start date, I need to check if that number is less than today's date (the day I run the code). If it is, it needs to flagged as "LATE" and the whole row of info copied to another worksheet with LATE as the title and all the column headings and info copied to the worksheet. I hope this makes sense to someone because I am a beginner in Excel and even less informed when it comes to VBA. Any help would be greatly appreciated.
The way the process must work is that I need to check the frequency and if it is "Weekly" or "Monthly" , it is ignored and goes on to the next row. All other frequencies are cut in half, i.e., "Annual" is 183 days, "Semi-annual is 92 days", "Quarterly" is 45 days, "2-Year" is 365 days, and so on. This number needs to added to the scheduled start date (now formatted as a number, not a date, and checked to see if it is smaller than today's date (also a number). If it is, it is reported on the second worksheet (titled Late).
I'm working with data as displayed below. My objective is to create a table by Model with summed quantitiies in two columns representing On-Time and Late. On-Time is achieved when Date Shipped is on or before the Promised Date. I have included the required format to be achieved in the second example. I'm willing to work with macros or VBA for the solution. I just need guidance to learn how to accomplish this task.
Tried with index & Match formula but it throws errors in few cases becoz Cell value are either stored in general or H:mm formats
For ex.
Cell value "05:07" has a custom format applied (hh:mm), and in the formula bar it is displayed as "05:07:00" which is not what we want. When I change the format to 'General' Excel converts the 'time' to decimal, eg "0.213194444444444".
When I manually enter 05:07 the problem is nearly resolved as it changes to 'general' without turning to decimal, but displays as 05:07:00. The formula converts it to decimal where it throws error.
I am putting together a simple table to display current week's data vs previous weeks. The current week's data is drawn from a status chart which changes frequently. The constant change is fine for 'Current' as I only want the current data displayed.
The problem I am having is calculating the number of late jobs that existed during the previous week.
The status log has a due date which is compared to the current date to determine 'on time' status for the current week. Due dates are reissued regularly so I can't use
=COUNTIF(RANGE,WEEKNUM(NOW()-1)) to return data about last week from my status chart.
I have available a 'Movement Log' (in the workbook but a separate worksheet) which tracks the changes in the due date field, but I'm not sure how to integrate that data to calculate the # of jobs that were running late from the last week.
My thought is that I need to perform a count of the # of late based on a comparison of 'due date' to 'date of the last day of last week' with a way to insert the "old due date" from the movement log to replace what is shown in the status log if necessary.
I had a spreadsheet developed for me at work but the lad who developed it for me has subsequently left and I'll be honest I would not have any idea of macro's or some executables in excel. The only problem I'm having with this is it is not flagging item's as late unless they have gone over 2 months past the target date (would be ideally looking for 1 day past target date for it to flag late). Could anyone just have a quick look at this, I'm sure that this could be a quick fix but I would not have the relevant expertise for this. If someone can rectify the problem could you also just give me a quick explaination as to how this was done as I would like to have an idea myself and not have to continue to bug people with simple problems like this.
I am aware of the following topic in the VBA Help file:
"Using Microsoft Excel Worksheet Functions in Visual Basic You can use most Microsoft Excel worksheet functions in your Visual Basic statements. To see a list of the worksheet functions you can use, see List of Worksheet Functions Available to Visual Basic.
Note Some worksheet functions aren’t useful in Visual Basic. For example, the Concatenate function isn’t needed because in Visual Basic you can use the & operator to join multiple text values."
And I'm aware of how to call Excel funcitons from within VBA; e.g., answer = Application.WorksheetFunction.Min(myRange)
However, not only are some Excel functions not useful; the fact is they cannot be used because VBA has a native function that does exactly the same thing and you have to use that native VBA function to achieve your goal. It is these overlapping functions that I am especially interested in. I want to know what I should use directly in VBA and what I need to go to Excel for.
I am using a combination of validation, vlookup and simple formulas to lay out a workorder. If I leave something blank in one of the feilds then everything that comes after say #n/a and won't allow the calculation to complete. Is there a way I can set a default value or something so to make calculate all the feilds that ARE filled in?
I have a workbook with data tabs (one shown here) and a summary tab. Essentially, one inputs hours for people in the Data tab (Tech) that are then calculated/summed to total $ based on rates I have hidden elsewhere in the workbook (not included). I'm trying to bring the subtotal lines (highlighted green) into the Summary tab based on which subtotal and what month/year it is. My formula works fine, except for the fact that it is returning a #Value! due to the "Hrs" heading for each Phase. I don't know why it's doing this because I've not run into sum array issues when mixing numbers and letters before. The error formula is highlighted in yellow in my attached sample, but below is a copy of the formula.
My intension is that if A=1 and I=DM and K=bid then add the corresponding values in L and display. I can't figure out why this formula in another cell and works fine
I am creating a spreadsheet which shows the date of when the training was cpmpleted. I have added an expiry column which gives the date 3 years from start date no problems. The trouble i am having is that the column will return an #VALUE when no training date is entered. ie: the person has had no training so no date can be entered.
Sub indX() For rwindex = 1 To 4 For collindex = 1 To 10 With Worksheets("sheet1"). cell(rwindex.collndex) If Value < 0.001 Then .Value = 0 endwith Next collndex Next rw
End Sub
I have a code here and i have to spot what the errors are.
I know there is an error with 'endwith' but not sure what to do to fix it
What i'm looking to do is input a VBA command to comb the activesheet (which contains approximately 1400 rows, and 32 columns of mixed data and formulas), and determine if the text value "#N/A" appears anywhere on the sheet. If it occurs one or more times, i want it to set a boolean flag to true.
I know of ways to do so by setting a = countif(A:AG,"#N/A") formula in a cell, but unfortunately this is not my solution here, as it needs to be done before the formula is converted to text. A countif does not show a visible value of #N/A if its true value is a formula.