I have 2 subs routines in a mod. I have declared the two variables at the top of the sub. However when I call the second sub the variable's are not passed along.
Here is an example script. All in one mod. I have taken out the junk in between to help edit the problem.
I'm looking to pass the same bnumber and dnumber to the secound sub.
The following code stops at the red line with "Method 'SaveAs' of object '_Workbook' failed.
FF="xlCSV". It works fine if I replace Code: FileFormat:=FF with Code: FileFormat:=xlCSV
Code:
Sub SaveIt(FileNm, FF) Dim FSO As Object, a Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(FileNm) Then FSO.DeleteFile FileNm If FSO.FileExists(FileNm) Then
I am in the process of re-building a major project due to bugs. In the process, I plan to re-organize my sub-routine grouping within modules. In the source file, I have 18 standard modules, with 10-30 routines in each one.
What I would like is a printout of each routine name and which module it resides in, so I can check off each one as I copy it and paste it into the new file. I see that I can get a psuedo tree-view of my project in th eObject Browser, but can't figure out how to print that.
I am using Microsoft Excel 2003. My question is about calculating time. 1 hour + 1 hour and fifteen minutes would equal two hours and fifteen minutes. Using Microsoft Excel 2003, let's say I am using cells A1, A2, A3 and A4.
A1 will be 1:00 for 1 hour A2 will be 1:15 for 1 hour and fifteen minutes A3 will be my total for adding cells A1 and A2 and the answer will be 2:15 for two hours and fifteen minutes.
My specific questions is: Would it be possible for me to have the fifteen minutes (0:15) from the two hours and fifteen minutes (2:15) automatically carry over to cell A4 or cell A4 of another worksheet without having to type in 0:15 or having 2:15 appearing in cell A4?
below fig 1 is a part of a worksheet we are using for Stock. The idea is to track stock write downs on a yearly basis. Where I am struggling is a formula to carry the stock balance and value forward if there has been no movement in a given year.
The enteries in green (fig1) colums "Stk Forw" & "Car Fwr" represent how I would like the info to look.
Is there a formula that could look for the last entry in "Stk In/Out" if the column "YTD to date" is empty and carry that value forward to the next row.
I Would also need a formula to sum the Total & Car Fwr colums as one total.
What im trying to do is to be able to run the same macro but start on the last cell that I had selected and work on down the sheet until the end. What im also trying to do is to be able to post into next avail line on sheet 1 so it dosent overwrite.
I created a time sheet for employees which calculates the total wages each week. I copy the worksheet to create a new time sheet for each week. I want all subsequent time sheets (worksheets) after the first one to calculate the total wages to date by adding the total wages of the current sheet to the total on the previous sheet. If for example I am on Week 2, I know how to reference the wages cell from the previous week by using something like ='Week (1)'!M28, but when I copy the Week 2 sheet to create Week 3, the new sheet still references Week 1. I don't want to manually change the sheet number each week. How can I make it reference the previous week automatically?
its a simple spreadsheet that suppose to track a usage of items that were taken out of inventory, but at the same it needs to be printer friendly (that's what's causing all the problems),
it got messy when I had to carry over from previous row, I had to manually enter under "Quantity ch." in order to have correct amount under "Left" column, (see row #4)
I think I can eliminate whole "Carried over" column if I create a formula that will enter data into B4 only if J3 has a number, I also need to copy the same formula's down each column,
I want to input pick 3 (3 numbers) into a cell and with the assigned SUM to that cell to add +123 to the 3 numbers I input, but how do I get the answer not to carry over?
For pick 3 games, the numbers are; 0,1,2,3,4,5,6,7,8,9 (ten total).
When I add +123 to 987 I get 1110. I don't want that. I would like it to show 010 instead, lotto numbers no carry over.
I'm looking for some ideas on how I can improve my invoice I have on excel,currently I have a spread sheet made to look like a standard invoice that prints on one page.
the problem is the more lines the invoice has the smaller the righting gets as it only prints one page.
how can I get my invoice to look nice, still automatically add up all the lines but go into two pages?
I've tried splitting the invoice but it looks professional.
I have a sheet which is just a list of product codes and a sum of every order placed for each code. i.e. Sheet2 AB1Prod codeOrdered2123100345650478960
then I have another sheet which is the orders placed by our customers. These orders are to go out in 6 periods each of 2 weeks. For various reasons the amount ordered each time won't match the periods.
What I need to do is look up the quantity ordered and then allocate the ordered quantity to the periods carrying over the remainder to the next period and so with the table above the result would be
I want to make a template in excel. Lets assume I have Opening Balance in A1 and closing balance in B1. How do I make template make new sheet and every time I make new sheets it should take the closing balance of the previous sheet as the opening balance and so on and so forth. But the very first sheet needs to have the opening balance as unlocked cell but the rest of them needs to be locked.
I am attempting to create a macro that will carry out vlookup for each row in a data set
For simplicity testing this on a sheet where A1:A10 contains data 1 to 10, and B1:B10 contains a to j, and putting the result of the vlookup into column E.
The code I have written is:
[Code] .......
When I attempt to run this I receive an error message that says, "Unable to get the VLookup property of the WorksheetFunction class."
The problem when I insert a raw in the middle of the table the condition formatting is not applied. How can I make excel carry over the conditional formatting?
The only reason I formatted the data in a table because it'll automatically control alternating row background color when insert rows.
I have recently obtained some help on code to bring up a user form based on cell change selection.
the code is as follows:
Dim c As Range If Not Intersect(Target, Range("C6")) Is Nothing Then With Sheets("Data Set").Range("D4:D43") Set c = .Find(Range("C6").Value, LookIn:=xlValues)
If Not c Is Nothing Then UserForm4.Show End If End With
End If
It brings up userform4, but the command buttons do not carry out the code behind them:
Private Sub CommandButton2_Click()
Sheets("Data Entry Form").Range("$C$6") = "Choose Employee" Unload Me End Sub
If I run user form seperate from the sheet and bring it up only in visual basic, it works...Any ideas???
PS this command button is no so it resets field C6. The other button is yes and performs copy paste function. Neither are operational when user form is brought up through the sheet change. Only works when initialized in VB.
I have a userform that contains a number of controls. When I press the enter / return key, I would like this to have the same effect as hitting the 'OK' button i.e. run some code. At the moment, hitting enter sets the focus on the next control in the tab order.
I have a number of Grand Totals that equal to Hours of Work in a day ( Based on Demand from Customer Orders)
I only have 95 ( this will be a number in a cell that I want to be able to change if needed) work hours available to me each working day.
I want each day to attempt to fill in up to 95 hours , anything more and it will push the remaining balance forward into the other cells.
IE here is what I have for the next 5 days for Totals
211.3798120.304870.0099110.734375.041828.1292
Under the 211 I want it to change to 95 and then carry over the balance to the cell under 120 , I then want that cell to change to 95 and carry over its balance to the next cell and so on down the line. I will always have 22 Working Days I want to work with. So the last day may or may not have a greater then 95 total.
The 95 part I want to be able to change that to whatever number I think I will have available to me and it will adjust accordingly through the line.
i am working with a large data set of excel files . I need to format the sheets in a specified way . i have recorded a marco that does this . I now have the problem of creating an automatic loader that opens the files , carrys out my macro , then closes the files.
For example i have a folder X that has 10 files inside it. i would like to be able to load the first file , carry out the macro, close the file move it folder y . Then look back into Folder X , take the first file it see's , carry out the macro , close the file , move it folder y , the go back to folder x and carrying out this until all the files are done and stopping when the folder is empty
I have subtracted two dates from B2 & B1 using DATEDIF() Function and the results are available in (B5) Year, (C5) Month and (D5) Days respectively. Now the problem is how to Subtract, Add days & Months using borrow, Carry forward to the previous cells (I need formula, function for the above). I have to take 30 days from month ie in C5 if the days (D5
Here is what I am trying to do: I have 30 duplicate worksheets that I enter data every 3 months. I have a macro that clears certain fields and copies data from one field to other and I run this macro after selecting each sheet one at a time. How can I create a macro that will run this macro from the 1st sheet through to the 30th sheet in one click. My macro is called Clear_data.
All I want to do is to stop a routine when I press the Cancel key on the user form that the routine called. I have tried "stop", "quit", "end", "abort", et. al. This seems so simple but I cannot figure out how to do it.
I have an add-in that can run the code below. It works fine, however, I need it to run whether there is just one row of data, or 100 rows of data. I have headers, so the first row of data starts in row 2, and the last no matter what will be in row 100 (so 99 rows of actual data technically). There are usually only 10 rows of actual data as the rest are usally set to blanks with iferror. The code below works, but I need it to run for however many rows of actual data there are.
I've got three workbooks that end users will be using for data entry. The VBA code for the three workbooks is identical.
I'm trying to encapsulate the code into an add-in so I only have one copy of the code that I have to debug/maintain.
Furthermore, I've also encapsulated the code in the add-in into a class. The class isn't really a "usual" object modelling some data; rather, it's a utility class processing Worksheet_Change and Worksheet_Activate events. Hopefully this isn't a really bad idea, rather than keeping the code in standard modules in the add-in.
The application is called "Midas". Here are some code excerpts:
Midas.xlam:
Standard Module:
[Code] ......
Class Module:
[Code] .....
And in the end user workbook:
[Code] .....
The Wbk_SheetChange event handler is triggering, but it's looking for the code in the end user workbook, instead of the class. Is there a way I can change
[Code] .....
to call the private routine "Cases_Changed" (where "Cases" is the sheetname) residing in the class instead of looking for it in the workbook?
How do I have a workbook execute VBA code when I hit 'Enter' anywhere on a specific sheet? I don't need the code to execute when I hit 'Enter' on any of the other sheets in the workbook, just a specific sheet.
I've written a Sub that separates words in a sentence into columns in an excel worksheet and it works perfectly. I can't however convert the convert it to a function procedure. when I do so I receive a Circular referencing problem or upon making necessary corrections to prevent circular referencing, I get the Excel #Value error. Here's the code:
Function TextToColumns(Txt) As String ' ' Enters Text Separated By Spaces Into Columns ' Dim i As Long Dim k As Long Dim cell As Range