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 trying to write a macro with a loop that counts the number of occurences of a specific piece of text within a range. I have tried both Do loops and ForEach loops. How do I end the loop? It just keeps wrapping back to the beginning. Excel does not seem to recognize EOF in the way Access or SQL does.
I need something that will exit all macros currently in place. The reason i am asking for this is because i have code that uses Application.Run to run another macro within the current code. If the other macro called on in Application.Run has a msgbox which has an OK/Cancel option, i want the Cancel button to exit all macros, not just the one that is used to access the message box via the Application.Run.
this is the portion fo the code that shows the cancel button and my attempt to use Exit Sub; however, this only exits the current sub, not all subs.
Code: If TnC4 = vbCancel Then msgbox "This application has been cancelled.", vbInformation, "CANCELLED APPLICATION" Application.Run "CLEAR" Exit Sub End If
I need to be able to have users complete a range of mandatory cells before they are able to close a workbook.
Foe example cells c5,c10,i11, i18,i22 i24,i26 etc etc need to have data in them before uses is allowed to save or close the workbook. I would like to have a message box prompt to alert them to the issue.
I seem to be spending an increasing amount of time on here these days! I hope this one is quite simple - I want to add a time stamp of when a cell is updated, but I dont know how to do this. I presume that an adjacent cell can have =now(), but need to know how it to run this when a particular cell has been changed.
I am trying to make a "master" sheet where employees total calls for the day are recorded.
Each employee will be marking their calls each day which will be on an excel spreadsheet. i would like to then create a MASTER sheet that links to all the employees specific sheets so when they exit the sheet it updates the master, or it can be a live update if that is possible...
I've set a range as DD14 to G014, then using a For Next Loop asked the program to cycle through each cell in the range. Upon findng a populated cell, it stores several bits of data from that cell (already done) and then move up one cell to record the cell value (time) and again move one cell up to record the date.
Now I did get this to work using a clunky bit of code that used activecell.offset to move the focus up the two columns and a While .... Wend loop - but using a set range and cycling through each cell it does not appear to be possible - or am I wrong?
Set MyRange(1) = Range("D14:ER14") Set MyRange(2) = Range("D23:GN23") For MyCounter = 1 To 2 For Each Cell In MyRange(MyCounter) If Cell.Value = "" Then Goto Skip_Cell MyCell = Cell.Address MyPosition = InStr(1, Cell.Value, ",") If MyPosition = 0 And Len(Cell.Value) >= 3 Then Tool_Number = Left(Cell.Value, 3).....................
I worte a procedure to protect the worksheet. When we clik on command button it asks the password but if I click on cancel button procedure is exiting.
I have created a userform on VBA which our clients will use. There are a number of different userforms which have different questions to make up the tool. At the end of each field (text box) there is a submit button (command button) which needs to be pressed. When the user presses next to move onto the next userform I need a control in place that ensures all of the 'submit' buttons have been pressed. If not i want something to say, 'you have not pressed all the submit buttons'. At the minute I have a simple reminder message box before they move onto the next screen but i need this control to be tightned.
I have a survey with different groups of Control Toolbox options buttons on it. I want to ensure that each question has an option button selected before the survey can be exited and emailed onwards. The grouped button names are: GroupA, Group1 through to Group6.
I have created a spreadsheet and wanted to originally see if I could save as a separate format (that makes it more like an application than an Excel spreadsheet). Having investigated, I found that full screen mode pretty much does what I want, however you can restore the menus by pressing ESC or selecting restore down. Is there a way of preventing users from exiting full screen mode, I could add a close application button for them to use instead.
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?
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.
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
Application.OnTime Now + TimeValue("00:00:10"), "Copy_Data" End Sub
I need to keep the current code to run Copy_Data every 10 seconds, however, i would like:
Code:
Call Create_OutOfStock_File Call Create_NearEmpty_File Call Create_InStock_File Call Create_Other_File To be called/run every odd minute, for example, 00:01:00, 00:03:00, 00:05:00
I am writing a lot of code and have separated each section in different modules For example, I have one module titled OpenR2D2 and another titled StoreName
I want the sub in StoreName to run at the end of OpenR2D2 but I get this compile error "expected variable or procedure, not module"
Here's the end of the code where I put it. What have I not thought of?
ThisWorkbook.Activate
Range("B9:G9").PasteSpecial R2D2data.Activate Range("B7:G7").Copy 'Sch Actual VLH
ThisWorkbook.Activate
Range("B12:G12").PasteSpecial Call StoreName R2D2data.Close Savechanges:=False Application.ScreenUpdating = True End Sub
I am trying to develop a routine that will save the file I am currently working on, then save the current tab as a *.csv file with the name equal to cell "C1" in the same directory as the original file. Then I would like it to close the .csv file and reopen the original file all while being generic with the naming so that if the file name and location changes, the script will still work. I recorded a macro to get me started.
I have a macro that formats an imported report and I have inserted it's code into several other routines I have written.
Since there is always the possiblity of changes occurring, is there a way to refer to this macro in a second (or third or fourth) routine so that if a change has to be made to the original macro, I won't have to change it everywhere?
I received a great little routine from you guys to a question which was a follows
Can Excel do this? I have a huge spread sheet - The formulas in each cell reads as follows: ='[1.xls]Community Libraries'!$A$9. I would like to copy the cell all the way down the column, but only 1.xls must change to 2.xls and 3.xls etc. Can Excel copy this way?. I'm using Excel 07 on this pc
The response was:
Sub PutFormula()
For i = 1 To 80 Range("A" & i).Formula = "='[" & i & ".xls]Community Libraries'!$A$9" Next
End Sub
Can this be modifed to: A) Start on row 6 and end on row 85 of each Column A to CZ B) Modify the end bit of the formula as follows Community Libraries'!$A$9&"/10"
I have a useform with about 30 Text boxes for user input.
when the user exits the box I want a validation check routine.
I need to verify 4 things.
1. That the entry is numeric.
2. Thew at the entry is above the minimum.
3. The Entry if below the maximum.
4. Number of decimal places.
Since I have 30 boxes and will be adding more in the future I need a Subroutine. Here is what I have (I know it does not work - I need help with the syntax.
I have 2 forms. Form1 and Form2. I load Form1 to display. A button on Form1 calls Form2 to display. After I hit Cancel-Unload on Form2 it doesn't dissapear. How do I get rid of the residual image of pesky Form2 after I unload it and only display Form1 WITHOUT having to reload Form1 after Form1 calls Form2
In English Form1 Displays Form1 call Form2 to display Form2 is unloaded by hitting a button on Form2 Form2 is unloaded, however, it's image still displays!!!
Need some way to force screen to refresh without having to unload Form1!
I am trying to complete a toolbar that will lock and unlock all the sheets in a workbook. While I can set the password automatically I'd like to have the macro ask for the password instead of hardcoding it.
Here is the code I currently have and works so long as I have already set the password in the workbook to match what is in the macro
I have a Sub test where I think can be setup in an Array or a shorter sub routine, how to shorted this routine. Ths routine was designed to check your Computer and depending if you are one of the selected on will the unprotect the sheet.
I want to thank you all for the solutions/support I received in completing my (for me) difficult workbook.
I still have a tricky problem. In the example below, can Multibeep "know" when it is being called from Beep versus being excuted directly? And if so can I direct a different sequence?